A primeira solicitação para o IIS Express falha com o serviço 503 não disponível, segundo é bem-sucedido

4

Sempre que inicio meu aplicativo ASP.Net MVC 3 a partir do Visual Studio 2010, o IIS Express é iniciado e o IE gira em espera. A solicitação falha com HTTP 503 Service Unavailable. Eu pressionei Atualizar no IE e a solicitação foi bem-sucedida. Todas as solicitações subseqüentes são bem-sucedidas até que eu pare de depurar. Da próxima vez que eu for iniciar a depuração, a primeira solicitação falha novamente.

Alguém mais experimentou isso?

No IISExpress \ applicationhost.config eu tenho:

<site name="ProjectName" id="6">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="c:\users\chris\dropbox\code10\SolutionName\ProjectName" />
    </application>
    <bindings>
            <binding protocol="http" bindingInformation="*:80:laptop" />
    </bindings>
</site>

Eu tenho isso no meu arquivo hosts:

127.0.0.1    laptop

E meu projeto está definido para iniciar com o IIS Express, com o Url do projeto configurado para:

http://laptop

É muito estranho que apenas a primeira solicitação falhe, talvez como se o Visual Studio não estivesse aguardando o tempo suficiente para o IIS Express ser iniciado? Existe alguma maneira de fazer isso esperar?

Parar a depuração, fazer uma alteração e, em seguida, começar de novo é uma das tarefas mais comuns que faço, portanto, adicionar outro passo para chegar lá é bastante irritante.

    
por Chris Moschini 23.06.2012 / 23:20

2 respostas

12

O IIS Express suporta Rastreamento de Solicitações com Falha e está ativado por padrão. Os logs são gravados em %IIS_USER_HOME%\TraceLogFiles , que geralmente está neste local:

%USERPROFILE%\Documents\IISExpress\TraceLogFiles

Nessa pasta, você verá uma lista de subpastas para cada um dos projetos executados no IIS Express. Na pasta de cada site, deve haver um monte de arquivos frXXXXX.xml e um arquivo freb.xsl .

Usando o Firefox ou o Internet Explorer, abra o (s) arquivo (s) frXXXXX.xml que tem um carimbo de data / hora mais próximo de quando você obtém esses 503 erros. Depois de aberto, você verá algo como o seguinte:

Esperoquevocêdescubraacausadoerro503.

Vocêtambémpodetentar iniciar o IIS Express para o seu projeto manualmente a partir da linha de comando:

C:\Program Files (x86)\IIS Express>iisexpress /path:"[PATH]" /port:16444

Em que [PATH] é o caminho do sistema de arquivos para a pasta do projeto que contém o código do site, web.config etc, por exemplo, no seu caso, seria:

c:\users\chris\dropbox\code10\SolutionName\ProjectName

Isso pode gerar alguns erros interessantes se o IIS Express não puder iniciar o site pela primeira vez.

Como um aparte, você também pode dizer ao Visual Studio para "Attach to Process" e iniciar a depuração dessa maneira.

    
por 24.06.2012 / 02:39
3

A primeira e mais importante ação que você precisa tomar é determinar o que realmente acontece.

Para isso, ative as páginas de erro detalhadas para solicitações locais:

appcmd.exe set config -section:system.webServer/httpErrors -errorMode:DetailedLocalOnly /commit:apphost

Agora, todas as devoluções http de classe 400 e 500 farão com que o IIS exiba uma página de erro muito mais detalhada.

    
por 23.06.2012 / 23:35