Upload de arquivo do IIS 8.5 causando "NetworkError: 500 Internal Server Error

3

Estou com um tempo terrível tentando encontrar a causa do erro ao fazer o upload de um arquivo (o tamanho do arquivo não importa) via HTTP para um Windows 2012 R2 Essentials ( IIS 8.5 ) servidor da Web.

O aplicativo é executado sem falhas no Windows 2003 ( IIS 6 ). Ele também funciona muito bem no meu PC de desenvolvimento do Windows 7 em execução IIS 7.5

Como o Gerenciador do IIS para IIS 7.5 é tão semelhante ao IIS 8.5, tive pouca dificuldade em configurar meu aplicativo da Web ISAPI, mas tudo que não seja o upload de arquivos funciona bem.

Eu testei coisas básicas primeiro:

  • Assim como nas versões anteriores do IIS, verifiquei as permissões da pasta de upload.
  • Eu verifiquei o Visualizador de eventos e não vejo nada sobre meu aplicativo da web.
  • Os cabeçalhos de solicitação enviados para as versões do IIS 7.5 e do IIS 8.5 são idênticos. Os dados lançados são idênticos.
  • Defina o tamanho máximo da postagem.
  • Adicionou tipos de arquivos à lista de permissões.

Outras coisas que tentei:

Quando um arquivo grande é carregado no servidor da web, vejo o w3wp.exe (processo de 32 bits) consumir a CPU quando o arquivo é carregado. O problema é que o erro acontece antes que qualquer código do meu aplicativo tenha uma chance de trabalhar com o upload. Por exemplo:

// handle any HTTP POST
if (strcmp(spContext->GetRequestMethod(), "POST") == 0) {
    // what was posted?
    if (form == FILE_UPLOADED) {
        // A file has been uploaded.  Check it to make sure it is
        // not corrupt and do what I need to do with it.
        …
        // I then prepare a JSON response:
        m_HttpResponse.SetContentType("application/json; charset=UTF-8");
        …
        // Now send a reply to the client browser letting it know that the
        // file was either successfully / unsuccessfully handled
        …

Acredito que ele deva ser um problema de configuração do IIS 8.5, já que esse problema não ocorre no IIS 7.5 ou no IIS 6.

Alguém pode me dar seus pensamentos sobre o que pode estar acontecendo? Obrigada!

UPDATE

Peter Hahndorf sugeriu que eu usasse o recurso Trace, então eu o habilitei e este é o "Resumo do pedido":

Url
http://www.fileuploads.tst:80/FileUpload.srf 

App Pool
DefaultAppPool_classic 

Authentication
anonymous 

User from token
NT AUTHORITY\IUSR 

Activity ID
{8000000F-0001-F800-B63F-84710C7967BB} 

Site
8 

Process
4652 

Failure Reason
STATUS_CODE 

Trigger Status
500 

Final Status
500 

Time Taken
0 msec 

Erros & Avisos     Severtity     Advertência

Event
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
this field is empty...nothing to display
    
por Caroline Beltran 11.05.2015 / 01:44

1 resposta

2

Depois de uma semana de enlouquecer, eu finalmente encontrei a raiz do problema, que acabou por ser o disco rígido. Ele estava fazendo ruídos de clique ocasionais, mas eu pensei que não seria um problema, já que eu estava apenas avaliando o Windows 2012.

Afinal, o Windows carregou corretamente e o único problema aparente foi uma falha de inicialização ocasional, mas uma vez que o servidor estava rodando, tudo parecia rodar sem problemas, exceto pelo recurso de upload de arquivos do meu aplicativo.

Quando o disco rígido foi substituído, o problema desapareceu. Não há mais erro interno do servidor ao fazer o upload de qualquer arquivo!

    
por 15.05.2015 / 03:00