Nosso aplicativo da web .NET faz chamadas de serviços da web para o Amazon S3 e para um sistema parceiro.
Do nada, tivemos dois episódios recentes em que o nosso servidor da Web começa a expirar intermitentemente nessas chamadas. Erro registrado:
System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond x.x.x.x:443 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() ...
Recebemos alguns erros de timeout por hora (às vezes mais; às vezes menos - mas cada um representa uma falha para nossos usuários). Em nosso primeiro episódio, os erros pioraram gradualmente até a reinicialização.
Quando o problema está em efeito, o Log de Eventos não mostra absolutamente nada fora do comum. Gerenciador de Tarefas > Os picos de rede atingem cerca de 25% de utilização. De tudo o que podemos dizer, o servidor não está sobrecarregado (CPU, arquivos, etc); e tudo parece normal.
O problema é resolvido quando reinicializamos (mas aparentemente podemos começar novamente a qualquer momento).
Quaisquer pensamentos ou sugestões seriam mais apreciados - incluindo pensamentos sobre registros que poderíamos verificar ... ferramentas que poderíamos executar para monitorar ... etc. Obrigado!
Notas sobre o meio ambiente: