O IIS concluirá solicitações pendentes no Stop-WebSite?

3

Vamos dizer que meu site hospedado no IIS8 está funcionando e felizmente atendendo a solicitações. Agora, de um Powershell elevado, eu corro:

Stop-WebSite <MyWebSite>

Minha suposição até recentemente era de que o IIS deixaria de atender a novas solicitações, terminaria as atuais e, em seguida, interromperia o site. No entanto, suspeito que nem sempre seja esse o caso: há um caminho de código no meu aplicativo assim:

Log("Begin");
try
{
  DoSomething();  // can take a few seconds
}
finally
{
 Log("End");
}

Ocasionalmente, haveria entradas "Begin" no meu log sem corresponder a "End". Alguma chance do Stop-WebSite forçar matar o processo do host?

    
por Max 12.06.2013 / 16:30

1 resposta

2

Ao executar este teste simples:

int ms = 2000;

try
{
    Log("1");
    Thread.Sleep(ms);

    Log("2");
    Thread.Sleep(ms);

    Log("3");
    Thread.Sleep(ms);

    Log("4");
    Thread.Sleep(ms);

    Log("5");
}
finally
{

    Log("6");
}

e parando o site um segundo depois que eu chamei a página, sempre recebo todas as seis entradas de log.

Portanto, em geral, sua (e minha) suposição original está correta, o processo em execução é concluído antes que o site seja encerrado.

É impossível que uma determinada solicitação não termine? E se for executado por horas? E se algo der errado e o processo de trabalho parar?

Eu procuraria outras razões pelas quais seu 'Log ("End");' não funciona.

    
por 15.06.2013 / 11:30