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

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

Response.StatusCode = 500; Response.StatusDescription = "Internal Server Error"; 

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

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

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

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

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

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

 Response.TrySkipIisCustomErrors = true; 

参考: HttpResponse.TrySkipIisCustomErrors