您现在的位置: 网页制作教程网 >> 网络编程 >> Asp.net 教程 >> ASP.NET 基础教程 >> 文章正文
作者:动态网站…
来源:动态网站制作指南
热度:
2007-6-7 13:58:04
问:为什么在切换成SQLServer模式后我的请求被挂起了?
答:检查在Session里面是否都保存的是可以保存在SQLServer模式下的对象,即这些对象必须支持序列化。
问:当Session设置成cookieless后会有什么影响?
答:当把cookieless设置成true时,主要会有下面的约束:
1、在页面中不能使用绝对链接
2、在应用程序中在除了Http和Https之间的切换时需要完成一些其他的步骤。
如果发送一个链接给其他人,此时的URL里面将包含Session ID的信息,所以两个人将公用一个Session。
问:是否可以将Session保存在数据库中?
答:当然可以,详细信息请参考:http://support.microsoft.com/default.aspx?scid=kb;en-us;311209
----------------------------------------------------------------------------------------------------------------------
问:为什么当我在InProc模式下使用Session会经常丢失?
补充一种情况:如果使用Access数据库,为了防止数据库被下载,有人可能会想到会把数据库文件放到bin目录下,这样数据库就不能被下载了,但是如果在 InProc模式下,这样也会导致Session丢失。因为当访问应用程序的时候,肯定会经常向数据库中写数据,这样就导致了放在bin目录下面数据库文件的变化,而bin目录被修改会导致session丢失。
要解决此问题,可以更换数据库文件的存放路径,或者使用StateServer或者SqlServer模式。
更多情况请参考:
PRB: Session Data Is Lost When You Use ASP.NET InProc Session State Mode
http://support.microsoft.com/default.aspx?scid=kb;en-us;324772
-------------------------------------------------------------------------
Asp.net中多项目共享Session 选择自 dnyz 的 Blog
http://dev.csdn.net/article/21/21714.shtm
1. 建立一个空白解决方案blank solution,如:d:\MyProject\MyProject.sln
2. 在d:\MyProject下建一个Web Application的根目录d:\MyProject\WebMis并设为http://localhost/WebMis的虚拟目录
3. 在WebMis目录下根据模块分别新建目录,如:d:\MyProject\WebMis\Login和d:\MyProject\WebMis\CheckOut
4. 在VS.net中根据模块新建web application,如:http://localhost/WebMis/Login和http://localhost/WebMis/CheckOut
5. 新建后Login和CheckOut两个目录自动被设置为虚拟目录
6. 在WebMis项目中添加Login和CheckOut的项目引用
7.在IIS管理器中删除Login和CheckOut的虚拟目录
8. 删除各项目的global.asax(除根项目)
9. 除去个项目的web.config(除根项目)中的如下代码:
<authentication mode="Windows" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
或删掉web.config(若不需要在各目录中进行配置)
10. 编译后,即可运行。
我来说两句:
推荐文章
相关文章