我在Windows Server 2003上运行IIS,我遇到了500内部服务器错误的问题。 我想检测是否有用户得到以下错误,并重新启动服务器,如果它发生。
我只是无法find检测服务器是否返回此错误的好方法。 我试图通过在一段时间内从服务器下载一些轻量级的页面来检测错误,但我不认为这是最佳的变体。
请分享我的任务的一些想法。 提前致谢。
重新启动IIS是因为500响应与用大锤挥动鸡蛋开启鸡蛋大致相同。 你不打算通过重新启动来解决这个问题,你将不得不解决你的问题,找出是什么原因导致500和纠正。 在500上自动重新启动服务器不是问题的解决scheme。 充其量,这是一个非常薄弱的解决方法。
如果你有一个生成500的页面,而且这个页面很糟糕,那么你需要重新启动一个服务器,那么你的方式就不好了,你应该把重点放在确定错误的原因上。 查看IIS日志中的错误信息。 您可能需要启用更多的日志字段才能获取所需的信息。 如果您的应用程序尚未启用,请打开详细的错误报告。
也就是说,如果你想要检测一个500发生的时间,你将需要做如下的事情:
在这篇文章中可以find关于IIS日志的一个很好的简洁描述。 相关的片段:
IIS6(及其位置)最有价值的日志文件是:
- HTTP.SYS错误日志 –
%windir%\System32\LogFiles\HTTPERR(默认位置;可configuration)- IIS网站日志 –
%windir%\System32\LogFiles\W3SVC#(默认位置;可configuration)**- 事件日志(系统和应用程序)
如果您遇到连接过多的情况,那么我仍然build议对应用程序进行故障排除,特别是内存泄漏。 将有问题的应用程序隔离到自己的应用程序池,以避免重新启动整个服务器。