存取 Exchange 2007 信箱時發生 HTTP 400 錯誤的要求錯誤

 

上次修改主題的時間: 2008-10-19

本主題提供的資訊是有關如何疑難排解 Microsoft Outlook Web Access 使用者在大型 Microsoft Exchange Server 2007 環境中遇到的錯誤訊息。

使用者嘗試使用 Outlook Web Access 存取 Exchange 2007 信箱時,會收到與下面類似的錯誤訊息:

HTTP 400 錯誤的要求 (要求標頭太長)

原因

符合下列兩個條件時,可能會發生此問題:

  • Exchange 2007 Mailbox server role 位於執行 Windows Server 2003 的電腦上。

  • 使用者是多個群組的成員。例如,使用者是一百個以上安全性群組的成員。

解決方案

Caution請注意:
UNRESOLVED_TOKEN_VAL(exRegistry)

若要解決此問題,您必須修改下列電腦上的三個 Internet Information Services (IIS) 6.0 相關登錄項目:

  • 主控 Exchange 2007 Client Access server role 的 Windows Server 2003 電腦。這部電腦會主控受影響使用者的 Outlook Web Access。

  • 主控 Exchange 2007 Mailbox server role 的 Windows Server 2003 電腦。這部電腦會主控受影響使用者的信箱。

登錄項目

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters

數值名稱:MaxClientRequestBuffer

數值類型:REG_DWORD

數值資料: 32768

基數:十進位

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

數值名稱:MaxFieldLength

數值類型:REG_DWORD

數值資料: 65534

基數:十進位

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

數值名稱:MaxRequestBytes

數值類型:REG_DWORD

數值資料: 500000

基數:十進位

相關資訊

MaxClientRequestBuffer 登錄項目可限制 HTTP 要求中的回應行和標頭資訊。MaxClientRequestBuffer 所限制的資料包含從要求的第一個位元組到實體內容之前最後一個位元組的所有資料。此資料包含方法、URL、任何其他路徑資訊、查詢字串、HTTP 版本、所有標頭,以及用來分隔要求各部分的字元。換句話說,這包括所有不屬於要求內文的資料。

IIS 6.0 會將要求資料的區塊讀入緩衝區,因此 MaxClientRequestBuffer 所設定的限制可能不正確。因此,設定 MaxClientRequestBuffer 登錄項目之後,建議您確認用戶端要求大小和標頭欄位的實際限制就是您想要的值。

MaxFieldLength 登錄項目可指定每個 HTTP 要求標頭的大小上限。

note附註:
預設不會有此登錄項目。

MaxRequestBytes 登錄項目可指定要求行和標頭大小總計的上限。此登錄項目通常與 MaxFieldLength 登錄項目一起設定。如果 MaxRequestBytes 值小於 MaxFieldLength 值,則會調整 MaxFieldLength 值。

Client Access Server 不會處理用以指定 /exchange 虛擬目錄的 Outlook Web Access 登入嘗試。而是會將要求傳遞至 Mailbox Server。不過,Client Access Server 會處理用以指定 /owa 虛擬目錄的 Outlook Web Access 登入嘗試。

如果本文提及的登錄項目所設的值不夠高,則屬於多個群組之成員的使用者可能會遇到 Outlook Web Access 登入失敗。

如需 MaxClientRequestBuffer 登錄項目的相關資訊,請參閱 Microsoft 知識庫文章 260694 MaxClientRequestBuffer 登錄值的描述

如需 MaxFieldLength 登錄項目的相關資訊,請參閱 IIS 6.0 MaxFieldLength 參數未正確設定