Resolução de problemas de ARR 502.3 / Rastreio WinHttp no Server 2012

1

Eu tenho o seguinte cenário:

3 servidores virtuais do Windows Server 2012, todos com o IIS 8:

  • 1 servidor com roteiro de solicitação de aplicativo 3
  • 2 servidores com os aplicativos da web que o servidor ARR direciona para

Estou recebendo erros intermitentes de 502 3 12002.

Seguindo este guia link

Eu identifiquei que preciso rastrear usando netsh os provedores WinHttp / WebIO para obter o código de erro real mapeado para o código de erro 12002.

Eu corro o traço como o artigo sugere:

netsh trace start scenario=internetclient capture=yes persistent=no level=verbose tracefile=c:\temp\net.etl

Ao analisar a saída dos rastreios netsh, não obtenho o nível de informação que o artigo sugere que deveria. Especificamente, só obtenho os seguintes tipos de entrada no rastreio visualizado usando o netmon:

WINHTTP_MicrosoftWindowsWinHttp:Stopping WorkItem Thread Action...
WINHTTP_MicrosoftWindowsWinHttp:Starting WorkItem Thread Action...
WINHTTP_MicrosoftWindowsWinHttp:Queue Overlapped IO Thread Action...

Eu certamente não recebo detalhes suficientemente detalhados que me ajudem a entender por que estou tendo um tempo limite.

Existe alguma razão pela qual o Server 2012 não traçaria a API do WinHttp para o nível que eu preciso?

Obrigado

    
por nachojammers 24.10.2013 / 16:03

1 resposta

1

De acordo com o link e mencionado na página à qual você está vinculado, o código de erro do win32 de 12002 indica um tempo limite. O ARR foi construído em um tempo de 30 segundos e, se qualquer solicitação demorar mais de 30 segundos, o ARR expira e lança um 502,3. Se isso acontecer, você poderá ver os logs do IIS em seu servidor ARR e verificar se as solicitações da 502.3 estão demorando 30 segundos (ou se você pode apenas agendar a solicitação manualmente).

Se o tempo limite padrão de 30 segundos for curto, você poderá alterá-lo manualmente no arquivo applicatoinHost.config no elemento. Por padrão, a propriedade de tempo limite não está lá. Um exemplo do elemento com o tempo limite especificado como 1 minuto é o seguinte:

<webFarms>
    <webFarm name="Example Farm" enabled="true">
        <server address="webServer1" enabled="true" />
        <server address="webServer2" enabled="true" />
        <applicationRequestRouting>
            <protocol timeout="00:01:00" />
        </applicationRequestRouting>
    </webFarm>
    <applicationRequestRouting>
        <hostAffinityProviderList>
            <add name="Microsoft.Web.Arr.HostNameRoundRobin" />
            <add name="Microsoft.Web.Arr.HostNameMemory" />
        </hostAffinityProviderList>
    </applicationRequestRouting>
</webFarms>

Como sempre, você deve fazer backup desse arquivo antes de editá-lo.

    
por 08.01.2014 / 21:49