Comment pouvons-nous résoudre les intermittents “Une connexion existante a dû être fermée” des erreurs causées par un Cisco CSS

Nous avons le "standard" de l'architecture à trois niveaux avec notre niveau intermédiaire hébergés dans IIS et accessibles via .net remoting. Ces erreurs se produisent entre notre site web et les serveurs des services (première rangée) qui sont d'accès à distance pour l'application des serveurs (middle tier). Nous allons obtenir cette erreur de 3 à 10 fois par jour à partir de ~130 total des appels dans la journée.

L'exception et la trace de la pile toujours ressembler à ceci:


Exception Type: System.Net.WebException
Message: The underlying connection was closed: An unexpected error occurred on a receive.

Server stack trace: 
   at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessResponseException(WebException webException, HttpWebResponse& response)
   at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
   at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at XXXXX.BusinessFacade.Interface.XXXXInterface.SubmitXXXX(
   at XXX.XXXXWebServicesLibrary.XXXXService.CreateXXXXXX.RunXXXXMethod()
   at XXX.XXXXWebServicesLibrary.XXXXService.XXXXXXMethod`2.RunMethod()
   at XXX.XXXXWebServicesLibrary.XXXXXWebMethod`2.Run()HandleReturnMessage()
Inner Exception: 

Exception Type: System.IO.IOException
Message: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)Read()
Inner Exception: 

Exception Type: System.Net.Sockets.SocketException
Message: An existing connection was forcibly closed by the remote host
   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)Receive()

Il n'y a pas particulier remoting appel qui provoque cela se produise, il peut être l'un d'eux, qui semble exclure toute sorte d'application spécifiques en cause. Le seul dénominateur commun est le "Type d'Exception: System.Net.Les Sockets.Exception socketexception Message: Une connexion existante a dû être fermée par l'hôte distant" la partie de l'erreur.

L'avant et au milieu les niveaux sont séparés par un pare-feu et nous sommes aussi en utilisant un VIP de l'appareil. Je soupçonne fortement un problème avec notre réseau/configuration du pare-feu, mais notre réseau gars sont juste gratter la tête et de ne pas offrir des suggestions.

Bien qu'un de 0,003% de taux d'échec peut paraître insignifiant, nous avons des partenaires qui scrutent nos communications très attentivement et je suis juste en attente pour que cela devienne un problème qu'ils le remarquent. Je ne veux pas avoir à dire "je ne sais pas" quand ce temps viendra.

Quelqu'un a une idée sur comment je pourrais fournir plus d'informations ou des suggestions que je pourrais faire pour notre réseau gars pour obtenir ce résolu?

Est le domaine d'application dans IIS de recyclage lorsque l'exception se produit?
Comment pouvais-je dire?
Le Processus de travail IIS peut recycler pour quelques raison : la durée de vie atteint (en minutes), le nombre de demandes a atteint, à la limite de mémoire atteint . C'est "normal" reclycling en fonction de l'IIS -piscine - configuration. Si il recycle pour une utilisation anormale de la raison, vous devriez avoir un journal des événements comme : Système>W3SVC|Attention:Un processus servant de pool d'applications 'xxx' souffert d'une communication fatale ... Pour IIS 7, la source est " A " pas "de W3SVC'.
J'ai passé en revue les journaux et je ne vois pas de quoi que ce soit.

OriginalL'auteur JohnOpincar | 2010-08-06