Существует ли список кодов ошибок сервера для загрузок IIS BITS или определение для 0x80070585 («Недопустимый индекс»)?

Существует ли список кодов ошибок сервера для загрузок IIS BITS или определение для 0x80070585 («Недопустимый индекс»)?

У меня запущен IIS 8.5 на нескольких серверах с включенными загрузками BITS в виртуальном каталоге. Просматривая журналы, я вижу несколько разных видов ошибок, где говорится (bits_error:{GUID},500,0x80070070)или какой-то другой код ошибки. Я могу сопоставить их с описаниями ошибок на стороне клиента, используя Get-BitsTransferкомандлет PowerShell и доступ к атрибуту ErrorDescription, но только если я являюсь клиентом, столкнувшимся с ошибкой.

Конкретные коды, которые я вижу, это

  • 0x800703E3
  • 0x80070070
  • 0x80070005 — Я предполагаю, что это E_ACCESSDENIED
  • 0x8020001F - BG_E_SESSION_NOT_FOUND, по крайней мере на стороне клиента
  • 0x80070585 — я подтвердил, что это имеет описание «недопустимый индекс», но не могу найти никакой информации, дающей больше контекста. (Я думаю, что у этого конкретного сервера есть проблема с конфигурацией, которую я не могу указать, поскольку никакие загрузки на него не работают. Другие ошибки исходят от сервера, который «работает».)

Я уверен, что их больше.BitsMsg.hвключает в себя некоторые из наиболее распространенных.

Буду признателен за любые ссылки на более подробную информацию о полном списке кодов ошибок для записей BITS_POST в файлах журнала IIS.

Обновлять:Используя трассировку невыполненных запросов, я могу увидеть немного больше информации об ошибке Invalid Index (0x80070585). Я не вижу никакой активности в виртуальном каталоге в SysInternals Process Monitor, и я не вижу никаких дескрипторов, открытых для этого каталога на машине при использовании Handle. Однако я проверил, что учетные данные, сохраненные для привязки к этому виртуальному каталогу в IIS Manager, работают, и когда я выполняю тестовое соединение, я вижу в procmon, что INetMgr.exe действительно получил доступ к локальному каталогу, к которому я и ожидал. В любом случае, вот интересный фрагмент из файла трассировки. Похоже, мы добираемся до библиотеку BITS Service 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 всегда содержат максимум один файл, и шестнадцатеричное значение для него равно 0x80240007.

См. также WU_E_INVALIDINDEX и этоОтвет StackOverflow.

Связанный контент