【发布时间】:2013-09-20 17:34:34
【问题描述】:
我有一个已经运行多年的网络服务。今天,有人告诉我它给出了服务器错误 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 而否则就可以了?
【问题讨论】:
-
为什么这些错误是随机的?首先要做的是在发生错误时记录更多信息。 This link 可能有用。
-
我也收到了。很想知道你有没有想过这个。
-
@JordanParker 在我的情况下,令人惊讶的是它竟然是文件权限。该服务将使用连接的 AD 用户访问特定文件夹,这对一个离岸办事处的两个用户来说是个问题。我通过删除该依赖项来修复它,但可以通过向 Web 服务用户授予管理员权限并始终使用该权限,或者向 AD 用户添加权限来修复它。我很失望原来它是如此平凡;)
-
感谢@CobusKruger!我想这对我来说可能是相似的。我真的很感谢验尸。 :)