IIS7没有为错误的请求返回HTTP 400

时间:2010-12-15 12:59:48

标签: asp.net-mvc-2 iis-7

我有一个MVC2网站,我们对其进行了大量的集成测试。最重要的是,我们在使用不良网址时测试行为。例如:

http://x.x.x.x/v1//Dy888/1/1234567815/swlocation?fv=24&sv2=3&sv3=5

(注意“v1”之后的两个斜杠。)

这应该产生HTTP 400,错误请求,并且在开发环境(VS2008)中,一切都按计划运行。但是在测试环境中,IIS7或MVC2以某种方式看到了这一点并且响应就像只有一个斜杠一样。它看起来太“聪明”,并通过重写请求来帮助我们。

如何将我的服务器配置为“智能”,并真正回应正确的错误?

测试服务器是带有IIS7的Windows Server 2008。

谢谢! - 尼克拉斯

1 个答案:

答案 0 :(得分:1)

http状态代码400定义如下:

  

请求语法错误或者是   本质上不可能满足。

在URI中有一个额外的正斜杠(它只是整个请求的一部分)不能正确地归类为请求的语法错误,也不能使它无法满足请求,因为额外的正斜杠不会改变URI指向的位置。

我认为您的开发Web服务器行为错误,并且测试的前提是错误的。