Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一个应用程序池一直挂起IIS 7_C#_Sql Server 2008_Iis_Iis 7_Iis 7.5 - Fatal编程技术网

C# 一个应用程序池一直挂起IIS 7

C# 一个应用程序池一直挂起IIS 7,c#,sql-server-2008,iis,iis-7,iis-7.5,C#,Sql Server 2008,Iis,Iis 7,Iis 7.5,出于某种原因,我的应用程序池每隔几天就会崩溃一次。最大的问题是,我的管理事件中没有关于此池的错误或警告的日志。(其他池中存在多个警告,但只有此池不断崩溃)。我所做的更改只有在我等待几天之后才能测试是否有效 我试图让我的代码回到没有出现问题的阶段,但这似乎没有帮助 大多数崩溃发生在站点不是很忙的时候,尽管不是那么不活动,IIS会将其关闭以使其处于不活动状态 Windows server 2008 R2(SP 1), IIS版本7.5.76, 翁布拉科, Sql server 2008 IIS日志:

出于某种原因,我的应用程序池每隔几天就会崩溃一次。最大的问题是,我的管理事件中没有关于此池的错误或警告的日志。(其他池中存在多个警告,但只有此池不断崩溃)。我所做的更改只有在我等待几天之后才能测试是否有效

我试图让我的代码回到没有出现问题的阶段,但这似乎没有帮助

大多数崩溃发生在站点不是很忙的时候,尽管不是那么不活动,IIS会将其关闭以使其处于不活动状态

Windows server 2008 R2(SP 1), IIS版本7.5.76, 翁布拉科, Sql server 2008

IIS日志:仅显示池的一些循环(每3小时一次) 快速故障检测:禁用


我应该从哪里开始解决这个问题?

标准方法是开始制作跟踪日志文件。在你的应用程序的每一个关键点写详细的日志消息——当请求开始时,当它结束时,中间的某个地方,做DB操作等时,日志文件可能在一天结束时占用千兆字节,但你可以负担得起一段时间。然后,当它再次崩溃时,检查日志文件,看看它在崩溃之前做的最后一件事是什么。如果没有足够的详细信息,请添加更多日志记录并重复。

我会在不同的应用程序池上运行风险应用程序,以将影响降至最低。
有一个iss属性可在x分钟内发生5个错误后停止应用程序池重新启动
您可以尝试增加此设置,它应该可以让您了解这种情况发生的频率,以及一旦出错,它是否会继续出错。
如果是wcf服务,您可以启用跟踪日志(其中记录了很多日志,甚至可能是您的错误)。

至于要查找的位置,我建议检查堆栈溢出和多线程代码。
这两种情况都可能导致事件日志不包含任何信息。

WER(Windows错误报告)应该为您进行崩溃转储,除非禁用。崩溃报告的默认位置是c:\ProgramData\Microsoft\Windows\WER\ReportQueue\,但据我所知,崩溃的Windows事件日志条目包含转储文件(应用程序事件日志)的完整路径。将其弹出到您的VS中,检查出了什么问题


您也可以尝试安装DebugDiag,但我个人强烈建议不要在生产服务器上安装,因为它会以不可恢复的方式破坏WER配置,从而影响其他应用程序。

您是否尝试查看IIS日志?是否检查了EventViewer?IIS日志仅显示池的循环。使用eventviewer,您是指我的管理事件?我的应用程序使用的内存不大,并且不会上升。这是否排除了内存泄漏?或者我应该以其他方式检查吗?在“系统”事件日志(管理工具->事件查看器)下的任何内容?谢谢。-应用程序有自己的池-禁用快速故障检测-将尝试跟踪日志(尽管另一个谜是,当崩溃发生时,有时一个小时内站点上没有用户活动,但它还会跟踪IIS中可能出现的错误吗?)我将研究多线程代码和堆栈溢出。你能解释一下当应用程序池崩溃时你看到了什么吗?通常情况下,一个应用程序池在20分钟不活动后会空闲,也许它不会崩溃,但启动时有问题?不幸的是,IIS似乎没有注意到任何事情,一切看起来都很正常,我只需要重新启动池。池不会闲置,因为我有一个正常运行时间机器人每5分钟加载一次。Thanksii可能没有注意到什么,但我猜有人注意到了什么,或者这个主题不存在?:)您的机器人是否收到错误?您的数据库记录器是否未添加任何记录?站点是否超时?你如何看待“撞车”?