IIS에서 호스팅되고 .net 원격을 통해 액세스되는 중간 계층을 가진 "표준"3 계층 아키텍처가 있습니다. 이러한 오류는 응용 프로그램 서버 (중간 계층)에 원격 인 웹 및 웹 서비스 서버 (프론트 계층)간에 발생합니다. 이 오류는 당일 약 130,000 건의 전화 중 하루에 3-10 번 발생합니다.Cisco CSS로 인한 간헐적 인 "기존 연결이 강제로 닫혔습니다"오류를 해결하는 방법
예외 및 스택 추적은 항상 여기에 유사 :
이런 일이 원인이 특별한 원격 호출이 없습니다
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()
, 그것을 배제하는듯한 그 중 하나가 될 수 있습니다 어떤 종류의 응용 특정 원인. 유일한 공통 분모는 "예외 유형 : System.Net.Sockets.SocketException 메시지 : 원격 호스트에서 기존 연결이 강제로 닫혔습니다"라는 오류 부분입니다.
전면 및 중간 계층은 방화벽으로 구분되며 VIP 장치도 사용합니다. 나는 우리의 네트워크/방화벽 구성에 대한 문제를 강력하게 의심하지만 우리 네트워크 직원들은 머리를 긁적이며 어떤 제안도하지 않고 있습니다.
0.003 %의 실패율은 중요하지 않겠지 만 우리는 의사 소통을 매우 신중하게 조사하는 파트너를두고 있습니다. 저는이 문제가 알려지기를 기다리고 있습니다. 나는 그 때가되면 "나는 모른다"고 말할 필요가 없다.
더 많은 정보를 제공 할 수있는 방법에 대한 아이디어가 있거나 네트워크 담당자가 해결할 수있는 제안 사항이 있습니까?
예외가 발생할 때 IIS 재활용의 appdomain은 있습니까? – rene
어떻게 알 수 있습니까? – JohnOpincar
IIS 작업자 프로세스는 거의 이유가 없어 재생할 수 있습니다 : 수명이 다되었습니다 (분), 도달 한 요청 수, 메모리 제한에 도달했습니다. IIS -pool- 구성에 따라 "정상적인"리 클럭킹을위한 것입니다. 비정상적인 이유로 리사이클하는 경우 시스템 로그> W3SVC | 경고 : 응용 프로그램 풀 'xxx'를 처리하는 프로세스가 치명적인 통신을 받았습니다. IIS 7의 경우 소스는 'WAS'가 아니며 'W3SVC'가 아닙니다. – JoeBilly