我有一个ASP.NET 4.0应用程序,它通过WCF连接到MSSQL,然后连接到存储过程层。
由于某些原因,对于这些图层,每当我访问丢失的SP或返回错误消息时,都会导致我的应用程序挂起,因为应用程序池已停止。在本地调试模式下,这会导致Web服务器崩溃。
为什么会这样? 我是否可以更改设置以导致“更好”的行为,而不是崩溃或停止应用程序池?
更新:我实际上发现应用程序池正在停止,而不是崩溃。它在IIS7 / Windows Server 2008 R2中停止,因为它在短窗口中遇到了太多错误。我调整了应用程序池设置以防止它停止,一切正常。错误可以忽略不计。
答案 0 :(得分:2)
应用程序池实际上并没有崩溃,而是停止。
这是解决方案:
关闭应用池的快速失败保护。
答案 1 :(得分:0)
我看到崩溃池的唯一问题是称他为self并进行stackoverflow。因此,如果在出现错误时有任何类似的调用,请检查您的代码。
public string Text
{
get {return Text;}
set {Text = value;}
}
也许这样的事情会让他自言自语并崩溃。
protected override void OnLoad(EventArgs e)
{
// call by mistake the OnInit and make close loop
base.OnInit(e);
}
例如,可能当您遇到错误时,您调用的页面会在循环中再次调用相同的错误页面。
答案 2 :(得分:0)
IIS Health Monitoring已经回收了工作进程,因为它无法响应ping。
在我的开发机器上,我禁用了它。在应用程序池的“高级设置”下,在“流程模型”部分下设置“Ping Enabled”= False。