问题
我有一个ASP.NET 4.0应用程序崩溃与一台计算机上的堆栈溢出,而不是另一台计算机.它在我的开发环境中运行良好.当我将站点移动到生产服务器时,它会抛出堆栈溢出异常(在事件日志中看到)并且w3wp.exe工作进程死亡并被另一个进程替换.
我到目前为止所尝试的内容
为了参考,我使用调试诊断工具来尝试确定导致溢出的代码片段,但我不确定如何解释它的输出.输出如下.
ASP.NET网站如何在一台计算机上导致堆栈溢出而在另一台计算机上导致堆栈溢出?
有经验的领导表示赞赏.我将把结果解决方案发布到导致我的答案之下.
调试输出
应用程序:w3wp.exe Framework版本:v4.0.30319描述:由于堆栈溢出,进程终止.
In w3wp__PID__5112__Date__02_18_2011__Time_09_07_31PM__671__First Chance Stack Overflow.dmp the assembly instruction at nlssorting!SortGetSortKey+25 in C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\nlssorting.dll from Microsoft Corporation has caused a stack overflow exception (0xC00000FD) when trying to write to memory location 0x01d12fc0 on thread 16
Please follow up with the vendor Microsoft Corporation for C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\nlssorting.dll
Information:DebugDiag determined that this dump file (w3wp__PID__5112__Date__02_18_2011__Time_09_07_31PM__671__First Chance Stack Overflow.dmp) is a crash dump and did not perform any hang analysis. If you wish to enable combined …Run Code Online (Sandbox Code Playgroud) 我们的ASP.NET 2 Web应用程序非常优雅地处理异常.我们在Application_Error中捕获Global ASAX中的异常.从那里我们记录异常并向用户显示友好消息.
但是,今天早上我们部署了最新版本的网站.它运行了半个小时,但随后App Pool崩溃了.在我们恢复之前的版本之前,该网站没有恢复.
如何使应用程序池崩溃并跳过正常的异常处理程序?我试图复制这个问题,但到目前为止没有运气.
更新:我们找到了解决方案.我们的一个页面是屏幕抓图另一页.但URL配置不正确,页面最终屏幕自动无限,从而导致堆栈溢出异常.