Mamy „standard” architekturę trójwarstwowy z naszej środkowej warstwie obsługiwanej w IIS i dostępne za pośrednictwem usług zdalnych .net. Te błędy występują między naszymi serwerami usług WWW i usług internetowych (warstwa główna), które są zdalne dla serwerów aplikacji (warstwa środkowa). Otrzymamy ten błąd 3-10 razy dziennie po ~ 130 tys. Połączeń w ciągu dnia.Jak możemy rozwiązać przerywany „Istniejące połączenie zostało gwałtownie zamknięte” błędów powodowanych przez Cisco CSS
Wyjątkiem i stos ślad zawsze wyglądać podobnie do tego:
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()
Nie ma szczególności wezwanie remoting że powoduje to się stało, może to być każdy z nich, który wydaje się wykluczać każda przyczyna specyficzna dla aplikacji. Jedynym wspólnym mianownikiem jest "Typ wyjątku: System.Net.Socket.SocketException Wiadomość: Istniejące połączenie zostało przymusowo zamknięte przez zdalny host" część błędu.
przednie i środkowe poziomy są rozdzielone przez zaporę i jesteśmy również z wykorzystaniem urządzenia VIP. Zdecydowanie podejrzewam, że problem dotyczy naszej konfiguracji sieci/zapory, ale nasi użytkownicy sieci tylko drapią się po głowie i nie oferują żadnych sugestii.
Chociaż wskaźnik niepowodzenia 0,003% może wydawać się nieistotny, mamy partnerów, którzy bardzo uważnie analizują naszą komunikację i czekam tylko na to, aby staną się problemem, który zauważają. Nie chcę mówić "nie wiem", kiedy nadejdzie ten czas.
Czy ktoś ma jakieś pomysły jak mogę podać więcej informacji lub jakiekolwiek sugestie mógłbym zrobić dla naszych chłopaków sieciowych, aby to rozwiązać?
Czy aplikacja do recyklingu IIS pojawia się w przypadku wystąpienia wyjątku? – rene
Jak mogę stwierdzić? – JohnOpincar
Proces roboczy usług IIS może zostać poddany recyklingowi z kilku powodów: żywotność osiągnięta (w minutach), liczba otrzymanych żądań, osiągnięto limit pamięci. "Normalny" reclycling w zależności od konfiguracji usług IIS.Jeżeli przetwarzany jest z nienormalnego powodu, powinieneś mieć dziennik zdarzeń, taki jak: System> W3SVC | Ostrzeżenie: proces obsługujący pulę aplikacji "xxx" poniósł fatalny komunikat W przypadku IIS 7 źródłem jest "WAS", a nie "W3SVC". – JoeBilly