Существует ли список кодов ошибок сервера для загрузок IIS BITS или определение для 0x80070585 ("Неверный индекс")?
У меня IIS 8.5 работает на нескольких серверах с включенной загрузкой BITS в виртуальный каталог. Просматривая журналы, я вижу несколько разных видов ошибок, где говорится (bits_error:{GUID},500,0x80070070)
или какой-то другой код ошибки. Я могу сопоставить их с описаниями ошибок на стороне клиента с помощью PowerShell Get-BitsTransfer
Командлет и доступ к атрибуту ErrorDescription, но только в том случае, если я столкнулся с ошибкой клиента.
Конкретные коды, которые я вижу
- 0x800703E3
- 0x80070070
- 0x80070005 - я предполагаю, что это E_ACCESSDENIED
- 0x8020001F - BG_E_SESSION_NOT_FOUND, по крайней мере на стороне клиента
- 0x80070585 - Я подтвердил, что в нем есть описание "недопустимого индекса", но не могу найти информацию, дающую больше контекста. (Я думаю, что у этого конкретного сервера есть проблема конфигурации, которую я не могу описать, так как никакие загрузки на него не работают. Другие ошибки с сервера, который "работает".)
Я уверен, что есть еще. BitsMsg.h включает в себя некоторые из наиболее распространенных.
Будем благодарны за любые указания на более подробную информацию о полном списке кодов ошибок для записей BITS_POST в файлах журнала IIS.
Обновление: с помощью отслеживания невыполненных запросов я могу увидеть немного больше информации об ошибке неверного индекса (0x80070585). Я не вижу никаких действий с виртуальным каталогом в SysInternals Process Monitor и не вижу никаких дескрипторов, открытых в этот каталог на машине при использовании Handle. Однако я проверил, что учетные данные, хранящиеся для привязки к этому виртуальному каталогу в IIS Manager, работают, и когда я выполняю тестовое соединение, я вижу в 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 использует протокол BITS, возможно, индекс, о котором они говорят, является индексом файла в задании. Однако задания загрузки BITS всегда содержат не более одного файла, и шестнадцатеричное значение для этого файла равно 0x80240007.
Смотрите также WU_E_INVALIDINDEX и этот ответ StackOverflow.