У меня IIS 8.5 работает на нескольких серверах с включенной загрузкой BITS в виртуальном каталоге. Просматривая журналы, я вижу несколько разных типов ошибок, где говорится (bits_error:{GUID},500,0x80070070)
или какой-то другой код ошибки. Я могу сопоставить их с описаниями ошибок на стороне клиента с помощью PowerShell. Get-BitsTransfer
командлет и доступ к атрибуту ErrorDescription, но только если я оказался клиентом, столкнувшимся с ошибкой.
Я вижу конкретные коды:
Я уверен, что есть еще кое-что. BitsMsg.h включает в себя некоторые из распространенных.
Будем признательны за любые указатели на более подробную информацию о полном списке кодов ошибок для записей BITS_POST в файлах журнала IIS.
Обновить: Используя отслеживание неудачных запросов, я могу увидеть немного больше информации об ошибке недопустимого индекса (0x80070585). Я не вижу никакой активности в виртуальном каталоге в SysInternals Process Monitor, и я не вижу никаких дескрипторов, открытых для этого каталога на машине при использовании Handle. Однако я подтвердил, что учетные данные, хранящиеся для привязки к этому виртуальному каталогу в диспетчере IIS, работают, и когда я выполняю тестовое соединение, я вижу в procmon, что INetMgr.exe действительно получил доступ к локальному каталогу, которого я ожидал. Во всяком случае, вот интересный фрагмент из файла трассировки. Похоже, мы добираемся до DLL службы BITS и задыхаемся внутри нее.
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
a.k.a. SUS_S_ALREADY_UNINSTALLED
, что означает: «Удаляемое обновление уже не установлено - была сделана попытка использовать недопустимый индекс». Поскольку Центр обновления Windows использует протокол BITS, возможно, речь идет об индексе файла в задании. Однако задания на загрузку BITS всегда имеют не более одного файла, и шестнадцатеричное значение для него - 0x80240007.
См. Также WU_E_INVALIDINDEX и это StackOverflow ответ.