您目前已離線,請等候您的網際網路重新連線

登入 HTTP Api 的錯誤

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:820729
結論
本文將告訴 HTTP Api 的錯誤記錄功能。

HTTP 為主的應用程式中發生某些錯誤會自動處理,而不是回應用程式處理傳入的 HTTP api。事件記錄檔或應用程式處理常式,否則可能阻塞這類錯誤的頻率,就會發生這個問題。

下列主題將說明 HTTP API 錯誤記錄的不同層面。
  • 設定 HTTP API errorlogging
    登錄設定值會控制 HTTP API 記錄錯誤、 themaximum 允許記錄檔的大小,以及記錄檔的位置。
  • 記錄格式的 HTTP APIerror
    HTTP API 會使用 theWorld 寬資訊網協會 (W3C) 記錄檔慣例,來建立符合的記錄檔。您可以使用標準工具剖析這些記錄檔。不過,與 W3C 記錄檔,不同的是 HTTP API 記錄檔執行 notcontain 資料行名稱。
  • HTTP API 所記錄的錯誤類型
    HTTP API 會記錄許多常見的錯誤。
其他相關資訊

設定 HTTP API 錯誤記錄

如果要我們設定 HTTP API 讓您的錯誤記錄,請移至"為我修正此問題> 一節。如果您想要設定記錄您自己的 HTTP API 錯誤,請移至"讓我自行修正此問題> 一節。

為我修正此問題

若要自動修正此問題,請按一下 [下載] 按鈕。在 [檔案下載] 對話方塊中,按一下 [執行] 或 [開啟],然後遵循輕易解決精靈中的步驟。
  • 此精靈可能僅以英文顯示。不過,自動修正程式也適用於其他語言版本的 Windows。
  • 如果您不在發生問題的電腦上,將簡易修正程式方案儲存到快閃磁碟機或 CD 上,然後在發生問題的電腦上加以執行。
停用 HTTP API 錯誤記錄
啟用 HTTP API 錯誤記錄

讓我自行修正此問題

HTTP \Parameters機碼之下的三個登錄值會控制 HTTP API 的錯誤記錄。這些機碼位於下列登錄機碼 ︰
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
附註較新版本的 Windows 作業系統可能會變更的位置和設定值的形式。

您必須擁有系統管理員/本機系統認證,來變更登錄值中,並以檢視或變更記錄檔和包含它們的資料夾。

HTTP API 驅動程式啟動時,會讀取之登錄值中的組態資訊。因此,如果您變更設定時,您必須停止,而且然後重新啟動的驅動程式,以讀取新的值。若要這樣做,請鍵入下列的 [主控台] 指令 ︰
net stop http
網路開始 http
下列命名慣例用來命名記錄檔中 ︰
檢查 httperr + 序號 .log +
範例 ︰ httperr4.log
記錄檔循環,進而若是達到ErrorLogFileTruncateSize的登錄值會指定的最大大小。這個值不能小於一個百萬位元組 (MB)。

如果錯誤記錄的設定不正確,或是 HTTP API 寫入記錄檔時,就會發生任何一種失敗,則 HTTP API 會使用事件記錄來通知系統管理員並沒有發生錯誤記錄。

下表描述的登錄設定值。
登錄值描述
EnableErrorLogging您可以設定為 TRUE 以啟用錯誤記錄,或為 FALSE 以停用它將DWORD 。預設值為 TRUE。
ErrorLogFileTruncateSizeDWORD ,以位元組為單位指定的錯誤記錄檔大小上限。預設值是 1 MB (都是 0x100000)。

附註指定的值不得小於預設值。
ErrorLoggingDir字串,指定 HTTP API 要會將其記錄檔的資料夾。

HTTP API 中指定的資料夾中建立子檢查 HTTPERR ,然後將記錄檔儲存的子資料夾中。這個子資料夾和記錄檔會收到相同的權限設定。系統管理員和本機系統帳戶有完整存取權。其他使用者不能存取。

以下是在登錄中未指定資料夾時的預設資料夾 ︰
%SystemRoot%\System32\LogFiles

附註ErrorLoggingDir的字串值必須是完整的本機路徑。不過,它可以包含 %systemroot%。無法使用網路磁碟機或網路共用。

回到頁首

HTTP API 錯誤記錄檔的格式

一般而言,HTTP API 錯誤記錄檔都與 W3C 錯誤記錄檔,相同的格式不同之處在於 HTTP API 錯誤記錄檔不包含欄標題。每一行的 HTTP API 錯誤記錄檔會記錄一個錯誤。欄位出現在特定的順序。單一空格字元 (0x0020) 來分隔每個欄位,從先前的欄位。在每個欄位中,加號 (0x002B) 取代空格字元、 定位點和無法列印的控制字元。

下面的表格識別的欄位和順序中的錯誤記錄檔資料錄的欄位。
欄位描述
日期[日期] 欄位會遵循 W3C 格式。這個欄位是以基礎上國際標準時間 (UTC)。[日期] 欄位永遠是 YYYY-公釐-DD 表單中的十個字元例如,2003 月 1 日表示為 2003年-05-01。
時間「 時間 」 欄位會遵循 W3C 格式。這個欄位根據 UTC。「 時間 」 欄位永遠是 MM:HH:SS 的形式的八個字元。例如,5:30 PM (UTC) 被表示為 17:30:00。
用戶端 IP 位址受影響的用戶端的 IP 位址。此欄位中的值可以是 IPv4 位址或 IPv6 位址。如果用戶端 IP 位址是 IPv6 位址,[ScopeId] 欄位也會包含的地址。
用戶端連接埠受影響的用戶端連接埠編號。
伺服器 IP 位址受影響的伺服器 IP 位址。此欄位中的值可以是 IPv4 位址或 IPv6 位址。如果伺服器的 IP 位址是 IPv6 位址,[ScopeId] 欄位也會包含的地址。
伺服器連接埠受影響的伺服器通訊埠編號。
通訊協定版本正在使用的通訊協定版本。

如果連線已經無法剖析內容已足夠用來決定的通訊協定版本,連字號 (0x002D) 會使用 placeholderfor 當做空白的欄位。

如果主要版本號碼或次要版本號碼的剖析 isgreater 於或等於 10,版本會被記錄為 HTTP /?。 (章節)。
動詞命令最後也就是要求的動詞命令狀態剖析階段。未知的動詞命令是包括在內,但任何是超過 255 個位元組的動詞命令會被截斷成 [此長度。如果沒有可用的動詞命令,連字號 (0x002D) 用於做為預留位置空白的欄位。
CookedURL + 查詢一個以問號 (0x3F) 分隔的欄位已登入的 URL 和與它相關聯的任何查詢。這個欄位會被截斷,在它的 4096 位元組的長度限制。

如果這個 URL 已剖析 (「 替"),它會以本地字碼頁轉換的登,並會被視為 Unicode 欄位。

如果這個 URL 已經不剖析 (「 替") 在 thetime 的記錄,便會複製,沒有任何 Unicode 轉換。

如果 HTTP API 無法剖析這個 URL,hyphen(0x002D) 是當做預留位置使用空的欄位。
通訊協定狀態通訊協定狀態不能大於 999。

如果使用 requestis 來回應的通訊協定狀態,它會記錄在此欄位。

如果無法使用通訊協定狀態,則 hyphen(0x002D) 會空欄位,做為預留位置上使用。
網站識別碼不用於此版本的 HTTP API。版面配置區連字號 (0x002D) 永遠會出現在此欄位中。
原因片語這個欄位會包含識別正在將記錄的錯誤類型的字串。這個欄位永遠不會保留為空白。
佇列名稱這個要求的佇列名稱。
以下所列的範例是從 HTTP API 錯誤記錄檔 ︰
2002-07-05 18:45:09 172.31.77.6 2094年 172.31.77.6 80 HTTP/1.1 GET /qos/1kbfile.txt 503 – ConnLimit 2002-07-05 19:51:59 127.0.0.1 2780年 127.0.0.1 80 HTTP/1.1 GET /ThisIsMyUrl.htm 400-主機名稱 2002年-07-05 19:53:00 127.0.0.1 2894年 127.0.0.1 80 HTTP/2.0 GET / 505-Version_N/S 2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80-----Timer_MinBytesPerSecond
回到頁首

種 HTTP API 所記錄的錯誤

HTTP API 會記錄錯誤回應給用戶端、 連線逾時、 失去關聯的要求及已捨棄處理不正確的連接。

下列清單區分 HTTP API 所記錄的錯誤的類型 ︰
  • 回應給用戶端HTTP API 會傳送至用戶端,比方說,因為在最後一個接收到要求的剖析錯誤所造成的 400 錯誤錯誤回應。HTTP API 傳送錯誤回應後,它就會關閉連接。
  • 連線逾時HTTP API 會逾時的連線。如果要求正在擱置中 whenthe 連接逾時,,要求用來提供失去連接錯誤記錄檔中的相關資訊。
  • 孤兒要求使用者模式處理程序意外停止時仍然佇列的要求路由到該處理序。HTTP API 會記錄錯誤記錄檔中失去關聯的要求。
特定的錯誤類型都會顯示永遠顯示為錯誤的每一行的最後一個欄位的原因片語字串來指定。下面的表格識別 HTTP API 原因片語。
原因片語描述

AppOffline服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為應用程式錯誤導致應用程式離線。
AppPoolTimer服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為應用程式集區處理序太忙碌而無法處理要求。
AppShutdown服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為應用程式關閉自動以系統管理員原則的回應。
BadRequest處理要求時發生剖析錯誤。
Client_Reset要求無法被指派給背景工作處理序之前,已關閉用戶端與伺服器之間的連線。這個行為的最常見的原因是在用戶端過早關閉伺服器的連線。
Connection_Abandoned_By_AppPool從應用程式集區的工作者處理序已意外地結束,或孤立擱置的要求,關閉它的控點。
Connection_Abandoned_By_ReqQueue從應用程式集區的工作者處理序已意外地結束,或孤立擱置的要求,關閉它的控點。特定的 Windows Vista 及之後的版本及 Windows Server 2008 及更新版本。
Connection_Dropped伺服器無法傳送其最終的回應封包之前,已關閉用戶端與伺服器之間的連線。這個行為的最常見的原因是在用戶端過早關閉伺服器的連線。
Connection_Dropped_List_Full已捨棄連接用戶端與伺服器之間的清單已滿。特定的 Windows Vista 及之後的版本及 Windows Server 2008 及更新版本。
ConnLimit服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為已經達到或超過網站層級的連線限制。
Connections_Refused核心非分頁集區記憶體已低於 20 MB,並且 http.sys 已停止接收新的連線
停用服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為系統管理員已經應用程式離線。
EntityTooLarge實體超過所允許的最大大小。
FieldLength欄位長度限制已經超過。
禁止剖析時發現禁止的項目或順序。
標頭標頭中,發生剖析錯誤。
主機名稱處理主機名稱時發生剖析錯誤。
內部(HTTP 錯誤 500) 時,發生內部伺服器錯誤。
Invalid_CR/LF發生不合法的換或換行字元。
LengthRequired遺失所需的長度值。
N/A服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為發生內部錯誤 (例如記憶體配置失敗或 URL 預約清單衝突中)。
N / 我未實作的錯誤 (HTTP 錯誤 501),或服務無法使用發生錯誤 (HTTP 錯誤 503) 因為未知的傳輸編碼方式。
數字處理數字時,發生剖析錯誤。
指定條件遺失必要的先決條件。
QueueFull服務無法使用發生錯誤 (HTTP 錯誤 503)。服務目前無法使用,因為應用程式要求佇列已滿。
RequestLength要求長度限制已經超過。
Timer_AppPool連線過期,因為太長在取消佇列,並加以處理,伺服器應用程式的應用程式集區佇列中等待的要求。此逾時期間是ConnectionTimeout。根據預設,這個值是設為 2 分鐘。
Timer_ConnectionIdle連接會過期,並保持閒置。預設的ConnectionTimeout工期是 2 分鐘。
Timer_EntityBody要求的實體主體抵達之前,過期了連線。要求顯然有實體主體,HTTP API 會開啟Timer_EntityBody計時器。首先,此計時器的限制設定為ConnectionTimeout值 (一般來說,兩分鐘)。每次在此要求上收到該資料指出,則 HTTP API 重設計時器,讓連線兩分鐘 (或任何在ConnectionTimeout中指定)。
Timer_HeaderWait連線過期,因為剖析要求的標頭所花的時間超過兩分鐘的預設限制。
Timer_MinBytesPerSecond連線過期,因為用戶端已沒有收到回應,以合理的速度。回應的傳送速率是低於 240 的位元組數/秒的預設值。這可以控制與MinFileBytesPerSec中繼資料庫屬性。
Timer_ReqQueue連線過期,因為太長在伺服器應用程式時自訂清除佇列的應用程式集區佇列中等待的要求。此逾時期間是ConnectionTimeout。根據預設,這個值是設為 2 分鐘。特定的 Windows Vista 及之後的版本及 Windows Server 2008 及更新版本。
Timer_Response保留。目前無法使用。
Timer_SslRenegotiation連線過期,因為用戶端與伺服器之間的 SSL 交涉所花時間超過兩分鐘的預設逾時。
URL處理 URL 時,發生剖析錯誤。
URL_LengthURL 超過允許之大小上限。
動詞命令處理動詞命令時,發生剖析錯誤。
Version_N/秒不支援版本發生錯誤 (HTTP 錯誤 505)。

回到頁首
参考
如需有關如何新增額外的記錄欄位 IIS HTTP 錯誤記錄的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件 ︰
832975 其他屬性現在已有登入檢查 Httperr #.log 檔案,在 IIS 6.0 和 IIS 7.0
fixme 修正 fixit

警告:本文為自動翻譯

內容

文章識別碼:820729 - 最後檢閱時間:06/18/2016 07:17:00 - 修訂: 9.0

Windows Server 2008 R2 Standard, Windows Server 2008 R2 Enterprise, Windows Server 2008 Enterprise, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 for Embedded Systems, Windows Server 2012 R2 Foundation, Windows Server 2012 Standard, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows 10, Windows 10 Enterprise, released in July 2015, Windows 10 Pro, released in July 2015, Windows 10 Version 1511, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8, Windows 8 Pro, Windows 8 Enterprise, Windows 7 Professional, Windows 7 Enterprise

  • kbhttphandlers kbhttp kbapi kberrmsg kbinfo kbfixme kbmsifixme kbmt KB820729 KbMtzh
意見反應