3

我有一个已经运行多年的网络服务。今天,有人告诉我它给出了服务器错误 500。我检查了过去几个月的服务器日志,似乎 99% 的服务调用我的状态为 200,然后现在每隔 500 次并再次为事情增添趣味。服务器日志本身有点难以阅读,所以我尝试在不更改任何重要内容的情况下稍微减少它。

这是服务器日志的摘录:

2013-09-16 09:58:19 <Server IP> GET /WebServicePath/WebService.asmx - 80 - <Server IP> <User Agent String> 200 0 0 874
2013-09-16 09:58:22 <Server IP> GET /WebServicePath/WebService.asmx op=MyFunction 80 - <Server IP> <User Agent String> 200 0 0 203
2013-09-16 09:58:35 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 437
2013-09-16 09:58:42 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 0
2013-09-16 09:58:53 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 499
2013-09-16 09:59:05 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 203
2013-09-16 09:59:11 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 187
2013-09-16 09:59:16 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 200 0 0 296
2013-09-16 10:03:17 <Server IP> POST /WebServicePath/WebService.asmx/MyFunction - 80 - <Server IP> <User Agent String> 500 0 0 15

HTTP 状态是从右数第四个数字。

服务器是 IIS7,使用的用户代理字符串是这样的:

Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729)

我检查了事件查看器在获得 500 时记录的任何内容,但一无所获。

我发现很多人在新部署的服务上收到服务器错误 500 的例子,他们通常有一个装配问题。但到底为什么它会随机给出 500 而不是罚款呢?

4

1 回答 1

1

500 HTTP Status代码只是Internal Error意味着。这意味着 Web 应用程序抛出了任何类型的未捕获异常。

这可能是由于代码获得意外值的任何问题。因此,只要知道正在抛出 500,就没有什么可继续的了。

通常,在 ASPNET 应用程序下的事件查看器(应用程序日志)中会有一些东西。

应用程序日志记录(NLog、Log4Net、ELMAH)通常在进程顶部有某种包罗万象的功能,以记录异常的确切类型和消息。这是您需要进一步调查的信息类型。

于 2013-09-16T14:29:02.600 回答