ASP.NET MVC3中的随机会话超时

时间:2011-05-25 11:27:33

标签: asp.net-mvc asp.net-mvc-3 iis-7

我有一个获得随机会话超时的应用程序。 (Windows 2008 R2,.NET 4.0上的IIS 7.5)

我尝试了以下内容:

  • 如果w3wp.exe进程崩溃,则检查应用程序日志,但没有条目。
  • 在应用程序池中禁用快速失败保护
  • 移动到sql server状态提供程序以确保loa​​dbalancers粘性会话不是 问题。 (我们使用kemp loadmaster)。
  • 确保没有其他应用程序使用相同的应用程序池。
  • 检查已正确处理被调用程序集的线程中的异常。 (使用throw new exception模拟)并且错误处理是正确的。
  • 确保在所有4个Web服务器上的webconfig中将validationKey和decryptionKey设置为相同的密钥。

我现在想出如何发现这个邪恶的小虫。有什么建议?我无法在调试器中重现本地计算机上的问题。

可能重要的一点是,从第1页到第2页的会话丢失经常发生,有时超过120秒,因为第三方系统通过tcp套接字连接。

2 个答案:

答案 0 :(得分:7)

HI Snoopy你链接到我的问题,因为它们相似,

当我的appool崩溃时,我尝试了这个解决方案。如果你的appool崩溃了,这可能会有所帮助 http://support.microsoft.com/kb/911816

解决方案停止修复黑客保持我的应用程序池,但没有解决问题,

<configuration>
<runtime>
    <legacyUnhandledExceptionPolicy enabled="true" />
</runtime>

如果您的应用程序池仍然完好无损,您可以尝试ELMAH,因为这对我帮助很大 http://code.google.com/p/elmah/

您可以使用此代码来获取ELMAH来处理非托管异常 http://code.google.com/p/elmah/issues/detail?id=199

我很好奇,如果它是.net 4.0的MVC 3.0问题 因为我有几个非常相似的应用程序使用MVC 2.0运行没有问题, 仅在我转移到MVC 3.0时才开始

答案 1 :(得分:2)

是否在单个服务器上发生?当然听起来像网络农场的问题。

您可以更改自己的应用,以免使用第三方应用进行测试吗?

你必须消除碎片,直到失败消失,然后再添加东西。恢复第三方应用,重新打开其他服务器等。