asp.net – 在IIS7.5中什么模块删除了400个错误请求的正文

前端之家收集整理的这篇文章主要介绍了asp.net – 在IIS7.5中什么模块删除了400个错误请求的正文前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了ASP.NET(4.0)代码,将Response.StatusCode设置为400,如果发送到服务器的数据是有效的.
我以响应主体请求的格式将有用的信息放在响应主体中.例如一个html消息说“日期字段是必需的…”.

在Windows 7上的IIS7(7.5.7600)中,我得到正确的html响应回到浏览器.

在Windows 2008上的IIS7(7.5.6000)中,我没有收到html正文,只有一个文本正文以“Bad Request”作为内容.

有人可以指出我如何更改2008服务器的配置以返回正文.
或者这些版本的IIS有区别吗?
也许在Machine.config中的一个模块?
例如,我知道(并且必须解决),FormsAuthentication模块将401更改为302,即使你不想要这样做.可能会有一个模块停止发送的400的内容.

TIA.

解决方法

解决方案:编辑web.config system.webServer部分,并将httpErrors existingResponse属性设置为“PassThrough”等.
即:
<system.webServer>
    ...
    <httpErrors existingResponse="PassThrough"></httpErrors>
    ...
</system.webServer>

那么2件事情让我想起了这个问题:
1.经典的CustomErrors行为,因为我将localhost与远程服务器进行了比较
2.第一个不会解释我的一些其他身份验证错误是如何完整的

我挖了一下,在IIS7:How to Use HTTP Detailed Errors in IIS 7.0上遇到了这篇文章

这并不完全符合我在编辑web.config时发现的可能是因为我使用IIS7.5,但是足以让我进入正确的社区.

另请注意,使用IIS 10现在支持HTTP2,当请求升级到HTTP2时,不再支持包含文本的StatusDescriptions,所以如果您使用400(Bad Request)进行响应,则将仅被剥离为数字400.
HTTP/2 does not define a way to carry the version or reason phrase that is included in an HTTP/1.1 status line.

猜你在找的asp.Net相关文章