【发布时间】:2013-03-11 19:30:22
【问题描述】:
我正在开发一个 ASP.net Web 应用程序,该应用程序的作者已不再为我的组织工作。
我发现了一个奇怪的错误。这是间歇性问题。
我在应用程序中有一个名为 default.aspx 的页面。有时,加载此页面时,整个会话都会丢失。我在调试器中看到发生这种情况时会触发 Session_Start 事件。有时,Session_End 事件也会触发,但这似乎并非每次都发生。
我在 web.config 中找到了一个自定义的 sessionState 配置,但删除它并不能解决问题。
Default.aspx 直接继承 System.Web.UI.Page 并且除了 Page_Load 之外没有定义任何事件。
项目中没有 global.asax。
什么可能导致这个令人沮丧的问题?
更新:我在 Visual Studio 2010 的内置服务器中运行应用程序时遇到了这个问题。我的工作站上没有安装 IIS。
【问题讨论】:
-
您知道它是在 IIS 中自己的应用程序池下运行,还是在默认应用程序池下运行?每当应用程序池循环时,您将丢失所有会话信息(如果您使用“进行中” - 默认 - 会话设置)。另外,您能告诉我们该自定义 sessionState 部分的“模式”属性吗?
-
您能在浏览器中查看cookie ASP.NET_SessionId 的值吗?它是否保持其价值?
-
@Malcolm,我尝试在 MSIE 中检查我的 cookie,方法是按 F12 进入调试器,然后选择缓存 -> 查看 Cookie 信息。我看到一些按预期创建的 cookie,但我没有看到名为 ASP.NET_SessionId。
标签: asp.net session session-variables session-state