我有一个控制器操作,如果验证失败,则返回400:
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "My custom message");
在本地运行时,我得到标准的“400 Bad Request”,而不是预期的“400 My custom message”。它在部署的站点上工作正常,在我的旧PC上本地运行时 。
这可能是IIS或Visual Studio配置问题吗?我尝试过对旧的和当前计算机的applicationHost.config进行区分,但那里没有什么明显的。
回复图片(无法嵌入):
编辑:旧计算机的操作系统是Windows 7,新计算机的操作系统是Windows 10.两者都安装了IIS Express 10,项目配置使用。
答案 0 :(得分:1)
在dev工具中查看请求显示行为不当的请求正在使用HTTP / 2,并且所有其他变体(新计算机到已部署站点,旧计算机到localhost,旧计算机到已部署站点)正在使用HTTP / 1.1。 / p>
From the HTTP/2 specification:
HTTP / 2没有定义携带版本或原因短语的方法 它包含在HTTP / 1.1状态行中。
And the reason从旧PC转移到新PC时突然出现问题:
HTTP / 2是关于HTTP语义如何通过TCP连接进行的返工,并且Windows 10和Windows Server 2016中存在HTTP / 2支持。