有时,在我的Web应用程序中加载Default.aspx时会话丢失

时间:2013-03-11 19:30:22

标签: asp.net session session-variables session-state

我正在开发一个由不再为我的组织工作的人撰写的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。

2 个答案:

答案 0 :(得分:1)

可能导致会话问题的潜在问题(可能不适用于您的情况),有时,某些IIS管理员将应用程序池设置为WebGarden(即,最大工作进程数> 1)。这是一种常见的拔毛方式。

如果您使用的是VS 2010,则每次启动应用程序时,VS 2010都会启动“迷你IIS”。您可以在系统托盘部分中看到它。每当它启动一个新的“ASP.Net开发服务器”时,它就是一个新的会话。

试着帮忙。

答案 1 :(得分:0)

我找到了会话丢失的场景 - 在asp.net页面中,对于金额文本框字段具有无效字符,然后是用于其他目的的会话变量检索。在通过转换发布无效数字解析之后。 ToInt32或double引发了第一次机会异常,但错误没有显示在该行,而不是因为未处理的异常,Session为空,在会话检索时显示错误,从而欺骗调试...

希望它有所帮助, HydTechie