gpt4 book ai didi

asp.net - 在 IIS7.5 中,什么模块删除了 400 Bad Request 的主体

转载 作者:可可西里 更新时间:2023-11-01 15:06:19 24 4
gpt4 key购买 nike

如果发布到服务器的数据有效,我已经编写了将 Response.StatusCode 设置为 400 的 ASP.NET (4.0) 代码。
我以请求接受 header 要求的格式将有用的信息放在响应正文中。例如,一条 html 消息说“需要日期字段...”。

在 Windows 7 上的 IIS7 (7.5.7600) 中,我将正确的 html 响应返回给浏览器。

在 Windows 2008 上的 IIS7 (7.5.6000) 中,我没有返回 html 正文,而只有内容为“错误请求”的文本正文。

谁能告诉我如何更改 2008 服务器的配置以返回正文。
或者这些版本的 IIS 之间有区别吗?
也许是 Machine.config 中的一个模块?
例如,我知道(并且不得不解决)FormsAuthentication 模块将 401 更改为 302,即使您不希望这样做。可能有一个模块会停止发送 400 的内容。

TIA。

最佳答案

解决方案:编辑 web.config system.webServer 部分并将 httpErrors existingResponse 属性设置为“PassThrough”等修复。
即:

<system.webServer>
...
<httpErrors existingResponse="PassThrough"></httpErrors>
...
</system.webServer>

有两件事让我想到了这个问题:

  1. 经典的 CustomErrors 行为,因为我正在将本地主机与远程服务器进行比较
  2. 第一个无法解释我的其他一些身份验证“错误”是如何完好无损地通过的

我四处搜寻并在 IIS7 上发现了这篇文章:How to Use HTTP Detailed Errors in IIS 7.0

它与我在编辑 web.config 时发现的内容不完全相关,这可能是因为我使用的是 IIS7.5,但这足以让我进入正确的社区。

**另请注意,随着 IIS 10 现在支持 HTTP2,当请求升级到 HTTP2 时不再支持包含文本的 StatusDescriptions,因此如果您以 400(错误请求)响应,这将被剥离为仅数字 400。"HTTP/2 does not define a way to carry the version or reason phrasethat is included in an HTTP/1.1 status line. "

关于asp.net - 在 IIS7.5 中,什么模块删除了 400 Bad Request 的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3993941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com