Я реализую шаблон 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**
С уважением
Усман