2010-12-15 82 views
1

我有一個MVC2網站,我們執行大量的集成測試。最重要的是,我們測試使用不良網址時的行爲。例如:IIS7不會返回錯誤請求的HTTP 400

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

的HTTP狀態代碼400被定義如下:

請求有錯誤的語法或是 固有不可能得到滿足。

在URI(它只是整個請求的一部分)中有一個額外的正斜槓不能被正確地分類爲請求的語法錯誤,也不會使它不可能滿足請求,因爲額外的正斜槓不會改變URI指向的位置。

我認爲你的開發Web服務器是一個錯誤的行爲,並且你的測試的前提是錯誤的。

+0

克勞斯,謝謝你的回覆。但是MVC如何依靠請求的路徑信息,路徑是否完整無關緊要?你能澄清還是解釋?謝謝! – 2010-12-15 13:23:15

+0

我假設mvc通過刪除多餘的正斜槓來清理url,從而保持路徑不變。 Stackoverflow也使用MVC。如果您將任意數量的正斜槓添加到此問題的網址,則所有內容均正常運行。這導致我相信MVC通過簡單地刪除它們來處理額外的正斜槓。 – 2010-12-15 13:38:47

+0

是的,這似乎很可能,現在我正在尋找一種方法來禁用消毒...... :-)非常感謝! – 2010-12-15 14:01:06