Eu tenho trabalhado nisso por algumas semanas. Tenho um servidor IIS 8.0 hospedando o aplicativo ASP .NET 4.0 no modo Classic. Dois dos arquivos são GET, que fazem leituras do sistema de arquivos para cada solicitação, e um é o post que grava no sistema de arquivos. Agora, às vezes, começo a obter "Servidor muito ocupado" em um servidor. Esse erro é intermitente quando o servidor atinge esse estado, ou seja, algumas das solicitações retornam 200, enquanto a maioria delas retorna "Servidor muito ocupado". E até mesmo a reinicialização do servidor IIS não faz com que ele se comporte normalmente.
Eu li sobre as possíveis causas deste problema. Basicamente, o tamanho da fila excedendo um limite, o tempo limite de solicitações na fila, etc., deve ser o motivo. Agora, existem filas em vários níveis, HTTP.sys para o pool de aplicativos, fila global ASP .Net, fila de aplicativo (AppDomain), fila CLR.
Tentei reproduzir o erro enviando várias solicitações GET ao servidor simultaneamente, mas nenhum tamanho da fila parece estar aumentando muito, conforme o perfmon. Comecei a receber "Connection Timeout" devido a isso, mas não "Servidor muito ocupado". Onde estou errado em reproduzir isso? É porque estou enviando a mesma solicitação toda vez e ela está sendo armazenada em cache pelo próprio cache http.sys?
Para ter certeza, eu sou capaz de descobrir isso da próxima vez que eu encontrar, eu quero registrar vários tamanhos de fila periodicamente, número de pedidos pendentes no receptor, o número de pedidos para cada API atualmente em processo , ou seja, registre qualquer um dos parâmetros que possam causar esse problema periodicamente. Como posso fazer isso?
Não recebi nenhum log de erros nos logs do ASP .NET. No HTTPERR, posso encontrar muitos erros "Timer_ConnectionIdle" e muito poucos "503 N / A" (Serviço não disponível).
Por favor ajude. Agradecemos antecipadamente.
Editar: ao rastrear a solicitação "Servidor ocupado", recebi um aviso de eventos. Aqui está o traço disso:
-MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName
IsapiModule
Notification
EXECUTE_REQUEST_HANDLER
HttpStatus
503
HttpReason
Server Too Busy
HttpSubStatus
0
ErrorCode
The operation completed successfully.
(0x0)
Alguém, por favor, pode fornecer algum insight sobre isso?