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

Asp.net mvc ASP.NET MVC3中的随机会话超时,asp.net-mvc,asp.net-mvc-3,iis-7,Asp.net Mvc,Asp.net Mvc 3,Iis 7,我有一个随机会话超时的应用程序。(Windows 2008 R2、.NET 4.0上的IIS 7.5) 我尝试了以下方法: 如果w3wp.exe进程崩溃,请检查应用程序日志,但没有条目 在应用程序池中禁用快速故障保护 已移动到sql server状态提供程序,以确保loadbalancers粘性会话未被激活 这个问题。(我们使用kemp loadmaster) 确保没有其他应用程序使用相同的应用程序池 检查是否正确处理了被调用程序集的线程中的异常。(使用throw new exception模

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

我尝试了以下方法:

  • 如果w3wp.exe进程崩溃,请检查应用程序日志,但没有条目
  • 在应用程序池中禁用快速故障保护
  • 已移动到sql server状态提供程序,以确保loadbalancers粘性会话未被激活 这个问题。(我们使用kemp loadmaster)
  • 确保没有其他应用程序使用相同的应用程序池
  • 检查是否正确处理了被调用程序集的线程中的异常。(使用throw new exception模拟),错误处理是正确的
  • 确保在所有4台Web服务器上的webconfig中将validationKey和decryptionKey设置为相同的密钥
我现在没有办法找到这个邪恶的虫子了。有什么建议吗?我无法在调试器中在本地计算机上重现该问题


有一点可能很重要,即从第1页移动到第2页(经常发生会话丢失)有时需要120秒以上,因为第三方系统通过tcp套接字连接。

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

你能改变你的应用程序,使你不使用第三方应用程序进行测试吗


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

嗨,史努比,你链接到我的问题,因为它们很相似

当我的程序崩溃时,我尝试了这个解决方案。如果你的飞机坠毁了,这可能会有帮助

“解决方案停止修复”黑客让我的应用程序池继续运行,但没有解决问题

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

如果你的应用程序池仍然完好无损,你可以试试ELMAH,因为这对我帮助很大

您可以使用此代码让ELMAH处理非托管异常

我很好奇.NET4.0是否存在MVC3.0问题 因为我有几个非常相似的应用程序使用MVC2.0运行,没有任何问题,
仅在我迁移到MVC 3.0时启动,因此当您在本地调试时,是否无法模拟超时或来自此第三方系统的长时间运行的调用?我使用thread.sleep进行了模拟,但问题没有发生。我只是提到它,因为可能有人知道我忘记的某些秘密iis设置。此外,如果发生这样的超时,我希望事件日志的应用程序部分会有一个条目。我希望有人对此有想法:iis设置,疯狂的内存转储分析,可能使用特定的脚本usign windebug或iis的一些特殊日志modis。我没有更多的想法-(更新:我永远无法重现此问题,我只是收到外界的投诉,并经常在日志中看到。将代码移出没有帮助,因为我无法重现代码,没有代码,这是毫无意义的,因为它是一个b2c站点。问题出在一台服务器上,您永远无法重现。系统只显示来自第三方系统的数据;我通过tcp发送一个xml请求,并通过tcp获得一个xml响应。这通常需要45秒,有时长达3分钟。我的问题有点笼统,你下一步会做什么?我应该检查哪些设置、日志。我会从第三方应用开始。也许“伪造”一个xml响应,这样页面的其余部分会很高兴,但应用程序不会启动如果会话仍然丢失,那不是问题。谢谢,我尝试一下。我不使用ELMAH,我使用