Tenho o IIS 8.5 em execução em alguns servidores com uploads de BITS habilitados em um diretório virtual. Examinando os logs, vejo vários tipos diferentes de erros onde diz (bits_error:{GUID},500,0x80070070)
ou algum outro código de erro. Consigo combiná-los com as descrições de erros no lado do cliente usando o Get-BitsTransfer
cmdlet do PowerShell e acessando o atributo ErrorDescription, mas apenas se eu for o cliente que está encontrando o erro.
Os códigos específicos que estou vendo são
- 0x800703E3
- 0x80070070
- 0x80070005 - Presumo que seja E_ACCESSDENIED
- 0x8020001F – BG_E_SESSION_NOT_FOUND, pelo menos no lado do cliente
- 0x80070585 - Confirmei que tem uma descrição de "índice inválido", mas não consigo localizar nenhuma informação que forneça mais contexto. (Acho que este servidor em particular tem um problema de configuração que não consigo identificar, já que nenhum upload para ele está funcionando. Os outros erros são do servidor que "funciona".)
Tenho certeza de que há mais.BitsMsg.hinclui alguns dos mais comuns.
Quaisquer indicações para mais detalhes sobre a lista completa de códigos de erro para entradas BITS_POST nos arquivos de log do IIS serão bem-vindas.
Atualizar:Usando o Failed Request Tracing, consigo ver um pouco mais de informações sobre o erro de índice inválido (0x80070585). Não vejo nenhuma atividade no diretório virtual no SysInternals Process Monitor, nem vejo nenhum identificador aberto para esse diretório na máquina ao usar o Handle. No entanto, verifiquei que as credenciais armazenadas para vincular a esse diretório virtual no Gerenciador do IIS estão funcionando e, quando faço uma conexão de teste, vejo no procmon que INetMgr.exe realmente acessou o diretório local que eu esperava. De qualquer forma, aqui está a parte interessante do arquivo de rastreamento. Parece que estamos chegando à dll do serviço BITS e engasgando dentro dela.
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
Uma última pista é que para as entradas no log onde estou vendo o erro 0x80070585, não há nenhum GUID de trabalho listado depois de bits_error
. É apenas (bits_error:,500,0x80070585). É como se o caminho remoto desejado para o upload estivesse aparecendo, mas falhasse muito cedo no protocolo de upload.
Atualização 2:Existe um código de erro do Windows Update potencialmente relacionado , SUS_E_INVALIDINDEX
também conhecido como SUS_S_ALREADY_UNINSTALLED
, que significa "A atualização a ser desinstalada já não está instalada - Foi feita uma tentativa de usar um índice inválido." Como o Windows Update usa o protocolo BITS, talvez o índice do qual eles estão falando seja um índice de arquivo no trabalho. No entanto, os trabalhos de upload do BITS têm no máximo um arquivo, e o valor hexadecimal desse arquivo é 0x80240007.
Veja também WU_E_INVALIDINDEX e esteResposta StackOverflow.