仮想ディレクトリで BITS アップロードが有効になっている複数のサーバーで IIS 8.5 を実行しています。ログを確認すると、(bits_error:{GUID},500,0x80070070)
または他のエラー コードが表示されているさまざまな種類のエラーが見つかります。PowerShell コマンドレットを使用して ErrorDescription 属性にアクセスすることで、クライアント側のエラーの説明とこれらを一致させることができますGet-BitsTransfer
が、これはエラーが発生したクライアントである場合に限ります。
私が目にしている具体的なコードは
- 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 Update エラー コード がありますSUS_E_INVALIDINDEX
。SUS_S_ALREADY_UNINSTALLED
これは、「アンインストールする更新プログラムは既にインストールされていません -- 無効なインデックスを使用しようとしました」という意味です。Windows Update は BITS プロトコルを使用するため、ここで言及されているインデックスはジョブへのファイル インデックスである可能性があります。ただし、BITS アップロード ジョブには最大 1 つのファイルしか含まれず、そのファイルの 16 進値は 0x80240007 です。
WU_E_INVALIDINDEXとこちらも参照してくださいStackOverflowの回答。