将状态码500发送到客户端时不会呈现页面

All*_*est 3 c# asp.net iis-7 http-status-codes

我有一个页面(通用处理程序),我想在其上返回状态代码500到客户端,以指示出现问题.我是这样做的:

Response.StatusCode = 500;
Response.StatusDescription = "Internal Server Error";
Run Code Online (Sandbox Code Playgroud)

同时,我会发出一条友好的消息,告诉用户出现了问题.但是,我没有看到我的消息,而是获得了这样的默认IIS消息:

服务器错误500 - 内部服务器错误.您正在查找的资源存在问题,无法显示.

如果我进入IIS并删除500的错误页面,我会收到以下消息:

由于发生内部服务器错误,无法显示页面.

它在IIS6中按预期工作,但在IIS7中不能.我该怎么做才能让它在IIS7中运行?

Nic*_*ver 6

你需要再多一行来绕过IIS7接管(根据你设置的500错误代码):

Response.TrySkipIisCustomErrors = true;
Run Code Online (Sandbox Code Playgroud)

参考:HttpResponse.TrySkipIisCustomErrors