IIS 7.5 com autenticação do Windows - erro intermitente 400 no POST

IIS 7.5 com autenticação do Windows - erro intermitente 400 no POST

Nosso aplicativo é executado em IIS 7.5 com autenticação do Windows habilitada. Ao fazer upload de arquivos via POST, alguns usuários relatam erros intermitentes 400 do IIS com uma mensagem "Verbo inválido".

Consegui reproduzir isso sozinho preenchendo o mesmo formulário que o usuário com o mesmo arquivo carregado e falhou duas vezes seguidas, mas conseguiu a terceira.

Usando a guia Rede do Chrome, consegui copiar os cabeçalhos de solicitação e resposta das tentativas malsucedidas e bem-sucedidas.

Minha interpretação da diferença sugere que há falha na etapa de autenticação, mas posso estar errado. Alguma sugestão sobre o que preciso investigar?

Sucesso

POST <redacted> HTTP/1.1
Host: <redacted>
Connection: keep-alive
Content-Length: 26636
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: <redacted>
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQ6KIItP6Z7A76guk
Referer: <redacted>
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: <redacted>
X-CookiesOK: I explicitly accept all cookies

HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
Location: <redacted>
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.6.6
X-Powered-By: ASP.NET
Date: Wed, 17 Jun 2015 10:37:42 GMT
Content-Length: 164

Falhar

POST <redacted> HTTP/1.1
Host: <redacted>
Connection: keep-alive
Content-Length: 46013
Cache-Control: max-age=0
Authorization: NTLM <redacted>==
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: <redacted>
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryY5kiMQ9SHsqAoBjs
Referer: <redacted>
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: <redacted>
X-CookiesOK: I explicitly accept all cookies

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 17 Jun 2015 10:43:50 GMT
Connection: close
Content-Length: 326

http.sysvestígio:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Name="Microsoft-Windows-HttpService" Guid="{dd5ef90a-6398-47a4-ad34-4dcecdef795f}" />
        <EventID>52</EventID>
        <Version>0</Version>
        <Level>2</Level>
        <Task>1</Task>
        <Opcode>62</Opcode>
        <Keywords>0x8000000000000002</Keywords>
        <TimeCreated SystemTime="2015-06-17T13:14:10.558152100Z" />
        <Correlation ActivityID="{80000507-0000-7000-b63f-84710c7967bb}" />
        <Execution ProcessID="4" ThreadID="1376" ProcessorID="0" KernelTime="32565" UserTime="0" />
        <Channel>Microsoft-Windows-HttpService/Trace</Channel>
        <Computer />
    </System>
    <EventData>
        <Data Name="Status">0xC0000010</Data>
        <Data Name="RequestId">0x7000000080000507</Data>
        <Data Name="Reason">VerbLookupFailed</Data>
        <Data Name="ErrorCode">       2</Data>
        <Data Name="HintLength">       8</Data>
        <Data Name="HintData">0x535541696A6A5648</Data>
    </EventData>
    <RenderingInfo Culture="en-US">
        <Level>Error </Level>
        <Opcode>ParseRequestFailed </Opcode>
        <Keywords>
            <Keyword>Flagged on all HTTP events dealing with request processing </Keyword>
        </Keywords>
        <Task>HTTP Request Trace Task </Task>
        <Message>Parsing of request (request ID 0x7000000080000507) failed due to reason: VerbLookupFailed. Request may not be compliant with HTTP/1.1. </Message>
        <Channel>HTTP Service Channel </Channel>
        <Provider>Microsoft-Windows-HttpService </Provider>
    </RenderingInfo>
</Event>

informação relacionada