我在幾台伺服器上運行 IIS 8.5,並在虛擬目錄上啟用了 BITS 上傳。查看日誌,我看到了幾種不同類型的錯誤(bits_error:{GUID},500,0x80070070)
或其他一些錯誤代碼。我可以使用 PowerShell Get-BitsTransfer
cmdlet 並存取 ErrorDescription 屬性將這些內容與客戶端的錯誤描述進行匹配,但前提是我碰巧是遇到錯誤的客戶端。
我看到的具體代碼是
- 0x800703E3
- 0x80070070
- 0x80070005 - 我假設這是 E_ACCESSDENIED
- 0x8020001F - BG_E_SESSION_NOT_FOUND,至少在客戶端
- 0x80070585 - 我已經確認這有「無效索引」的描述,但似乎無法找到任何提供更多上下文的資訊。 (我認為這個特定的伺服器有一個配置問題,我無法指出,因為沒有上傳到它工作。其他錯誤來自「工作」的伺服器。)
我確信還有更多。比特訊息.h包括一些常見的。
如果您能提供有關 IIS 日誌檔案中 BITS_POST 條目的錯誤代碼完整列表的更多詳細信息,我們將不勝感激。
更新:使用失敗請求跟踪,我可以看到有關無效索引錯誤 (0x80070585) 的更多資訊。我在 SysInternals Process Monitor 中沒有看到虛擬目錄上的任何活動,也沒有在使用 Handle 時看到電腦上開啟該目錄的任何句柄。但是,我已驗證儲存的用於綁定到IIS 管理員中的虛擬目錄的憑證是否正常工作,並且當我進行測試連接時,我在procmon 中看到INetMgr.exe 確實已存取我期望的本機目錄。無論如何,這是追蹤文件中有趣的部分。看起來我們正在進入 BITS 服務 dll 並在其中窒息。
ISAPI_START
CALL_ISAPI_EXTENSION
DllName="C:\Windows\system32\bitssrv.dll"
MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER",
HttpStatus="500", HttpReason="Internal Server Error",
HttpSubStatus="0", ErrorCode="The operation completed successfully.(0x0)",
ConfigExceptionInfo=""
GENERAL_SET_RESPONSE_HEADER HeaderName="Pragma", HeaderValue="no-cache", Replace="false" 14:20:19.559
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-packet-type", HeaderValue="Ack", Replace="false" 14:20:19.559
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-Error", HeaderValue="0x80070585", Replace="false" 14:20:19.559
GENERAL_SET_RESPONSE_HEADER HeaderName="BITS-Error-Context", HeaderValue="0x5", Replace="false" 14:20:19.559
GENERAL_SET_RESPONSE_HEADER HeaderName="Content-Length", HeaderValue="0", Replace="false" 14:20:19.559
ISAPI_EXTENSION_DONE 14:20:19.559
ISAPI_END
最後一個線索是,對於日誌中我看到錯誤 0x80070585 的條目,後面沒有列出作業 GUID bits_error
。這只是(bits_error:,500,0x80070585)。就好像上傳所需的遠端路徑已經找到,但在上傳協定的早期階段就失敗了。
更新2:有一個可能相關的 Windows 更新錯誤代碼,SUS_E_INVALIDINDEX
又名SUS_S_ALREADY_UNINSTALLED
,這意味著“要卸載的更新尚未安裝 - 嘗試使用無效索引。”由於 Windows Update 使用 BITS 協議,因此他們所說的索引可能是作業中的檔案索引。但是,BITS 上傳作業最多只有一個文件,該文件的十六進位值為 0x80240007。
另請參閱 WU_E_INVALIDINDEX 和此堆疊溢位答案。