Por que as exceções capturadas fazem com que o IIS ou até mesmo o servidor inteiro do Windows Azure falhe?

4

Eu tenho um aplicativo do Windows Azure (função web) com o qual estou tendo sérios problemas.

Se houver problemas com um dos meus bancos de dados aos quais o aplicativo se conecta (neste caso, erros transitórios do SQL Azure), muitas exceções são lançadas em meu aplicativo. Cada exceção lançada é capturada e tratada de maneira adequada, mas o serviço do IIS é encerrado ou, pior ainda, toda a função da Web não responde.

O número de exceções é alto, qualquer coisa entre 30 e 100 por segundo.

Meu aplicativo é executado felizmente em 3 instâncias de função web, embora tenha esse problema eu atualizei para 10 instâncias porque eu tenho certeza que li que as exceções capturadas são bastante pesadas em recursos, mas isso não fez diferença.

Não há erros ou (do que eu posso determinar) avisos úteis no log de eventos.

.. e só para repetir, posso garantir que não há exceções não identificadas ocorrendo.

Isso soa como o comportamento normal do servidor?

    
por Steven Elliott 23.01.2012 / 17:35

2 respostas

2

Após uma investigação mais aprofundada, isso não foi causado pelas exceções, embora um grande número de exceções tenha impacto no desempenho, esse problema foi simplesmente que o problema do banco de dados que levou à exceção também aumentou o tempo de processamento de cada solicitação. não poderia ser processado mais rápido do que eles estavam chegando, o que estava causando a construção até que o IIS dissesse "não mais! 503 !!"

    
por 13.02.2012 / 03:17
2

Se você está convencido de que são as exceções, StackOverflow, mas com base no que eu sei: não diretamente. Somente exceções não tratadas causam a finalização direta do processo.

Mas os sintomas que você está descrevendo também não são - "O IIS Service é encerrado" - você pode ser específico sobre o que exatamente quer dizer com isso?

Exceções podem causar desempenho excepcionalmente ruim, e 30-100 / s parece muito difícil; se eles sobreviverem a uma geração de GC, eles podem estar apenas fragmentando seu espaço de endereço, mas ainda não se demorando (verifiquei um vazamento de memória?)

"Ou pior, toda a função da Web deixa de responder" - você quer dizer a instância da VM? Isso soa mais como um vazamento de recursos que não está sendo limpo (memória ou recursos externos).

    
por 24.01.2012 / 01:00