HTTPStatusCodeResult无法在localhost上运行的自定义错误消息

时间:2017-10-25 00:30:44

标签: c# asp.net-mvc http localhost http-status-code-400

我有一个控制器操作,如果验证失败,则返回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,项目配置使用。

1 个答案:

答案 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支持。