问题描述
|
我有一个获取随机会话超时的应用程序。 (Windows 2008 R2,.NET 4.0上的IIS 7.5)
我尝试了以下方法:
检查应用程序日志是否w3wp.exe进程崩溃了,但是没有任何条目。
在应用程序池中禁用了快速故障保护
移至sql server状态提供程序以确保负载均衡器粘性会话不存在
问题。 (我们使用kemp loadmaster)。
确保没有其他应用程序使用相同的应用程序池。
检查是否正确处理了被调用程序集的线程中的异常。 (使用throw new exception模拟),并且错误处理正确。
确保在所有4个Web服务器上的webconfig中将validationKey和decryptionKey设置为相同的密钥。
我现在没办法找到这个邪恶的bug。有什么建议么?我无法在调试器中的本地计算机上重现该问题。
可能很重要的一点是,由于通过tcp套接字连接的第三方系统,从第1页到第2页的会话丢失频繁发生的过程有时会花费120秒以上。
解决方法
嗨,史努比,您与我的问题相关,因为它们很相似,
当我的傻瓜崩溃时,我尝试了此解决方案。如果您的appool崩溃\这可能会有所帮助
http://support.microsoft.com/kb/911816
解决方案停止修复hack使我的应用程序池保持打开状态,但没有解决问题,
<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时启动
,它是否在单个服务器上发生?当然,这听起来像是网络农场的问题。
您可以更改您的应用程序,以便不使用第三方应用程序进行测试吗?
您必须消除碎片直到故障消失,然后再添加东西。恢复第三方应用程序,重新打开其他服务器,等等。