我正在开发一个由不再为我的组织工作的人撰写的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。
答案 0 :(得分:1)
可能导致会话问题的潜在问题(可能不适用于您的情况),有时,某些IIS管理员将应用程序池设置为WebGarden(即,最大工作进程数> 1)。这是一种常见的拔毛方式。
如果您使用的是VS 2010,则每次启动应用程序时,VS 2010都会启动“迷你IIS”。您可以在系统托盘部分中看到它。每当它启动一个新的“ASP.Net开发服务器”时,它就是一个新的会话。
试着帮忙。
答案 1 :(得分:0)
我找到了会话丢失的场景 - 在asp.net页面中,对于金额文本框字段具有无效字符,然后是用于其他目的的会话变量检索。在通过转换发布无效数字解析之后。 ToInt32或double引发了第一次机会异常,但错误没有显示在该行,而不是因为未处理的异常,Session为空,在会话检索时显示错误,从而欺骗调试...
希望它有所帮助, HydTechie