我见过服务器返回500个内部服务器错误代码,并在十进制分隔的子代码中添加额外的“详细信息”,例如: 500.19。
这个子代码是标准化的还是我可以自由使用它?如何防止在IIS或ASP.NET中崩溃到供应商代码?
路
答案 0 :(得分:3)
这个子代码是标准化的还是我可以自由使用它?
无法使用它,引用RFC 2616:
MSDN对Status-Code元素是一个3位整数
HttpResponse.SubStatusCode
:说
无论是否配置了跟踪,代码永远不会作为对请求的最终响应的一部分发送
因此,它仅用于记录和故障排除,而不是发送给客户端。
答案 1 :(得分:0)
有一个 Microsoft 标准列表。见 - http://support.microsoft.com/kb/943891
IIS 7.0定义了以下HTTP状态代码,指示500错误的更具体原因:
- 500.0 - 发生了模块或ISAPI错误。
- 500.11 - 应用程序正在关闭Web服务器。
- 500.12 - 应用程序正忙于在Web服务器上重新启动。
- 500.13 - Web服务器太忙了。
- 500.15 - 不允许直接请求Global.asax。
- 500.19 - 配置数据无效。
- 500.21 - 模块未被识别。
- 500.22 - ASP.NET httpModules配置不适用于托管管道模式。
- 500.23 - ASP.NET httpHandlers配置不适用于托管管道模式。
- 500.24 - ASP.NET模拟配置不适用于托管管道模式。
- 500.50 - 在RQ_BEGIN_REQUEST通知处理期间发生重写错误。发生配置或入站规则执行错误。
- 注意这里是为入站和出站规则读取分布式规则配置的地方。
- 500.51 - GL_PRE_BEGIN_REQUEST通知处理期间发生重写错误。发生全局配置或全局规则执行错误。
- 注意这里是读取全局规则配置的地方。
- 500.52 - 在RQ_SEND_RESPONSE通知处理期间发生重写错误。发生了出站规则。
- 500.53 - 在RQ_RELEASE_REQUEST_STATE通知处理期间发生重写错误。发生出站规则执行错误。该规则配置为在输出用户缓存更新之前执行。
- 500.100 - 内部ASP错误。