2016-03-02 32 views
2

我在Windows上使用IIS7.5 Windows集成身份驗證2003web.config頭部大小限制是否覆蓋註冊表中的http.sys限制?

某些用戶報告這個錯誤訊息一個ASP.Net 4.0應用程序:

錯誤請求 - 請求太長

HTTP錯誤400.請求標頭的大小太長。

其他人成功加載頁面,但在加載其他資源和執行AJAX調用時出錯。

其中一個遇到間歇性錯誤的用戶擁有約5700個字符的Kerberos授權標頭。該用戶是250個AD組的成員。我的理論是,其他HTTP標頭(包括Cookie)可能總共超過8000個字符,如果使用UTF16進行編碼,則總數超過默認的16KB限制。

這頁描述了使用的web.config配置每個HTTP頭限制: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits/headerlimits

這頁描述了使用註冊表設置來設置HTTP標頭的大小和總請求大小限制,默認情況下都16KB: https://support.microsoft.com/en-us/kb/820129

  1. 是否web.config設置覆蓋HTTP.sys註冊表設置?
  2. 如果是這樣,請求總大小是否有web.config設置?

回答

1
  1. 由於驅動程序是數據包的入口點,因此註冊表優先級高。它也是所有傳入HTTP數據包的服務器範圍設置。

請求過濾設置僅在數據包被轉發到IIS管道時才生效。它可以設置在多個級別來實現細粒度控制。

  1. 這似乎沒有設置。
0

您是否嘗試過在瀏覽器中清除Cookie?

您可能會存儲過多的Cookie,這些cookie將被添加到瀏覽器中的任何和所有請求中。這有時會導致類似的問題。此外,您可以嘗試在不同的瀏覽器中運行您的應用程序以查看是否影響任何內容。

+0

嗨。這個問題是18個月大。使用不同的瀏覽器進行測試並清除cookie是我們如何將auth頭的大小標識爲主要問題。 – Emyr