国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Win服務器 > 正文

修改MaxFieldLength與MaxRequestBytes徹底解決Request Too Long的問題

2024-09-10 00:04:27
字體:
來源:轉載
供稿:網友

當 IIS7/7.5 收到的請求頭的長度超過16K(默認值),就會引發"Bad Request - Request Too Long. HTTP Error 400. The size of the request headers is too long."的錯誤。

博客園服務器曾遭遇過這個問題,我為此寫過一篇博文(cnzz統計代碼引起的Bad Request - Request Too Long),問題的原因是第三方統計服務cnzz的統計代碼寫入大量的cookie,請求時會攜帶著這些cookie,從而造成請求頭長度超過限制。

本來以為這個問題只在Chrome中出現,后來有園友反饋Firefox也會出現這個問題。所以,要解決這個問題,必須從服務器端下手,這篇文章分享的就是如何從服務器端下手。

何處下手

根據IIS官方論壇的帖子(HTTP 400. The size of the request headers is too long),16K的請求頭/請求長度限制由是注冊表(HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/HTTP/Parameters)中的兩個參數 MaxFieldLength(請求頭) 與 MaxRequestBytes(請求頭與請求體) 決定的。所以,要從這兩個參數下手。

了解下手的對象

通過微軟官方文檔(http://support.microsoft.com/kb/820129)進一步了解MaxRequestBytes與MaxFieldLength:

MaxFieldLength - Sets an upper limit for each header.

用于設置每一個請求頭的字節數上限(默認16K)。

MaxRequestBytes - Determines the upper limit for the total size of the Request line and the headers.

用于設置請求行(請求體)與請求頭的總字節數上限(默認16K)。

如何下手

下手也就是調整 MaxFieldLength 與 MaxRequestBytes 的值(這里假設將這兩個值修改為32K),并使其生效。

運行regedit,進入 HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/HTTP/Parameters ,

1. 添加類型為 DWORD(32-bit)、名為 MaxFieldLength、值為十進制32768的項目;
2. 添加類型為 DWORD(32-bit)、名為 MaxRequestBytes、值為十進制32768的項目。



添加好了,如何讓它們生效呢?最簡單的方法就是重啟,可是對于服務器,最不想做的就是重啟。

還好,微軟官方文檔中提到了不重啟的解決方法,需要運行四個命令:

代碼如下:
net stop http
net start http
net stop iisadmin /y
net start servicename


但是第3個命令 net stop iisadmin 會停用IIS相關的所有服務,第4個命令要將IIS相關的所有服務一個一個啟動。
雖然不需要重啟服務器,但是這四個命令的解決方案我不喜歡。。。在網上也沒找到更好的解決方法。。。
后來,通過摸索,找到了一個更簡單的方法,只需三個命令:

代碼如下:
net stop http
net start http
iisreset


這個方法已經在服務器上通過實際驗證。

小結

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平潭县| 康保县| 田林县| 八宿县| 旬邑县| 海城市| 镇巴县| 如皋市| 临沧市| 鄂伦春自治旗| 客服| 宜春市| 新化县| 泸水县| 时尚| 耒阳市| 瑞金市| 丰宁| 台中市| 科尔| 双峰县| 报价| 宜黄县| 罗平县| 浮梁县| 西乌珠穆沁旗| 石家庄市| 锦屏县| 枣强县| 油尖旺区| 台南县| 清水河县| 舞阳县| 长沙县| 多伦县| 隆德县| 新丰县| 伊金霍洛旗| 肃南| 乌兰县| 浦东新区|