Как удалить .NET Remoting Fatal проблема: Исключение - PullRequest
2 голосов
/ 13 октября 2010

Я реализую шаблон Publisher / Subscriber через .NET Remoting. Мой издатель ждет входящих запросов по его URL. С другой стороны, среда удаленного взаимодействия настраивается правильно, и никаких проблем нет.

В конце подписки, когда я делаю некоторые подписки от его стороны до издателя, он зависает. Я имею в виду, что программа зависает и консоль ничего не показывает, и она исчезла, здесь нет исключений. Когда я отключаю издателя, он возобновляет и выполняет обработку и генерирует исключения со стеком Trace:

Вот трассировка стека ..

**System.Net.Sockets.SocketException (0x80004
005): An existing connection was forcibly closed by the remote host
Server stack trace:

   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size,
 SocketFlags socketFlags)
   at System.Runtime.Remoting.Channels.SocketStream.Read(Byte[] buffer, Int32 of
fset, Int32 size)

   at System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[] buffe
r, Int32 offset, Int32 count)

   at System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer, Int32 o
ffset, Int32 count)

   at System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[
] buffer)
   at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadAndMatchPreamble
()
   at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperat
ion(UInt16& operation)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.ReadHeaders()
   at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITranspor
tHeaders& responseHeaders, Stream& responseStream)
   at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMess
age(IMessage msg)
Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
   at DTFSharedObjects.IRemoteEventsPublisher.AddSubscription(Type type, String
url)
   at AgentTestRunner.CTestRunner.createSubscription() in d:\dtfsourcecode\dtf_b
ackend\agentsourcecode\sourcecode\runnercode\testrunner\testrunner.cpp:line 438**

С уважением Усман

...