我有一个已运行多年的网络服务。今天有人告诉我这是服务器错误500.我检查过去几个月的服务器日志,似乎我获得了200%的状态为99%的服务调用,然后现在几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并且不然呢?
答案 0 :(得分:1)
500 HTTP Status
代码仅表示Internal Error
。这意味着Web应用程序抛出了任何类型的未被捕获的异常。
这可能是由于代码获得意外值的任何问题。所以,只要知道500被抛出就没有多少事情可以继续了。
通常,在ASPNET应用程序下会将某些内容抛入事件查看器(应用程序日志)。
应用程序日志记录(NLog,Log4Net,ELMAH)通常在进程顶部有一些catch-all来注销异常的确切类型和消息。这是您需要进一步调查的信息类型。