У нас есть «стандартная» трехуровневая архитектура с нашим средним уровнем, размещенным в IIS, и доступ через удаленную сеть .net. Эти ошибки возникают между серверами веб-сервисов и веб-сервисов (фронт-уровня), которые удаляются на серверы приложений (средний уровень). Мы получим эту ошибку 3-10 раз в день из ~ 130 тыс. Вызовов в день.Как мы можем устранить прерывистые ошибки «Существующее соединение было принудительно закрыто», вызванное 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()
Там нет особых Remoting вызова, который вызывает это произойдет, это может быть любой из них, кажется, исключает любая конкретная причина применения. Единственным общим знаменателем является «Исключение типа: System.Net.Sockets.SocketException Message: Существующее соединение было принудительно закрыто удаленной частью узла« ошибка ».
Передний и средний уровни разделены межсетевым экраном, и мы также используем VIP-устройство. Я сильно подозреваю, что проблема связана с нашей конфигурацией сети/брандмауэра, но наши ребята из сети просто царапают головы и не предлагают никаких предложений.
Хотя показатель сбоя в 0.003% может показаться несущественным, у нас есть партнеры, которые тщательно изучают наши сообщения, и я просто жду, чтобы это стало проблемой, которую они замечают. Я не хочу говорить «я не знаю», когда наступит это время.
Есть ли у кого-нибудь идеи о том, как я мог бы предоставить дополнительную информацию или любые предложения, которые я мог бы сделать нашим сетевым ребятам, чтобы решить эту проблему?
Является ли appdomain в IIS переработке при возникновении исключения? – rene
Как я могу сказать? – JohnOpincar
Рабочий процесс IIS может перерабатываться по нескольким причинам: (в минутах), количество достигнутых запросов, предел памяти достигнут. Это для «нормального» повторного набора в зависимости от конфигурации IIS-пула. Если он перерабатывается по ненормальной причине, у вас должен быть журнал событий, например: System> W3SVC | Предупреждение: пул приложений, обслуживающий процесс «xxx», подвергся фатальной коммуникации ... Для IIS 7 источник «WAS» не «W3SVC». – JoeBilly