前言:
出差一个月了,终于回来了,本来想继续写CYQ.Data的序列文章,突然看到MapXtreme有一条回应;
就写多一篇文章,澄清下我上一篇文章MapXtreme
2005 学习心得 一此问题(八)所说中的Session问题。
之前的调试方式
在MapXtreme 安装目录下,有一个MapXtremeControl的源码。
在上一篇中,由于调试不了源码,而只能在外面反复大量调试,以结果来猜测问题。以至于得出Session不稳定的结论。
在上一篇中,由于调试不了源码,而只能在外面反复大量调试,以结果来猜测问题。以至于得出Session不稳定的结论。
先说说怎么调试MapXtremeControl
情况分析:
用Vs2005打开项目工程后,提示版本转化,直接转化即可,然后添加到项目引用。这时候,就算添加的是这个引用,也是无法调试的,因为在“C:\WINDOWS\assembly”目录下就存在了MapInfo.WebControls,所以默认会优化调用这个。
如果想调试你引用的项目,需要先卸载此目录下的DLL,直接右键卸载是行不通的。
如果想调试你引用的项目,需要先卸载此目录下的DLL,直接右键卸载是行不通的。
卸载的方法如下:以下是网上搜到,以前我搜的时候,是通过修改注册表,然后进行卸载的:
.NET Framework中附带了一些和GAC有关的工具,其中包括:
1)Gacutil.exe,一个命令行的工具,用于在GAC中浏览、添加、删除Assembly
2)Ngen.exe,也是一个命令行的工具,用于在GAC中创建Native Image
3)mscorcfg.msc,一个MMC终端,可以图形化完成Gacutil.exe的主要功能。
1)Gacutil.exe,一个命令行的工具,用于在GAC中浏览、添加、删除Assembly
2)Ngen.exe,也是一个命令行的工具,用于在GAC中创建Native Image
3)mscorcfg.msc,一个MMC终端,可以图形化完成Gacutil.exe的主要功能。
卸载后,即可以调试你添加的项目了。
问题澄清的结论:
在调试进去后,最终又把问题引向自身了,关于Session的不稳定性,
是由于Session的两种配置方式的不同而引起的
这个一定要在项目之初就考虑清楚,而帮助文档里也有这么一段说明,不过当时没在意。
是由于Session的两种配置方式的不同而引起的
这个一定要在项目之初就考虑清楚,而帮助文档里也有这么一段说明,不过当时没在意。
关于两种配置方式
1。是用Session池,所有人共享Session,所有的保存都需要进行序列化,编码很麻烦,默认的示例也是这种方式,有点误导。WebConfig的配置有三点,帮助文档里有说到。
2。是和普通的Session一个样,不需要序列化。编码简单,不过没有默认的救命。WebConfig配置一下即可。帮助文档里也有说到。
关于两种模式的使用情况,帮助文档里也有提到。多看帮助文档很重要,不然这个配置错误,引起的返工,是近乎重写所有的代码。
2。是和普通的Session一个样,不需要序列化。编码简单,不过没有默认的救命。WebConfig配置一下即可。帮助文档里也有说到。
关于两种模式的使用情况,帮助文档里也有提到。多看帮助文档很重要,不然这个配置错误,引起的返工,是近乎重写所有的代码。