我在TcpChannel
中遇到了一些麻煩。我想創建一個頻道,遠程訪問一個對象,比方說,一臺服務器,並在完成所有這些後關閉頻道。問題是我可能需要稍後在相同的端口重新打開相同的頻道,而且我很難嘗試這樣做。如何刪除.NET中的TcpChannel對象
連接用我只做:
var channel = new TcpChannel(port);
Console.WriteLine("Start Connection received at Server");
ChannelServices.RegisterChannel(channel, false);
//Initiate remote service as Marshal
RemotingServices.Marshal(this, "Server", typeof(Server));
然後關閉它,我只是做:
Console.WriteLine("Stop Connection at Server");
channel.StopListening(null);
RemotingServices.Disconnect(this);
ChannelServices.UnregisterChannel(channel);
channel = null;
在此之後,如果我嘗試創建一個新的TcpChannel例如,我得到一個異常說tcpChannel連接是唯一的,它們必須在不同的端口上。
那麼,我怎樣才能關閉tcpChannel? :S
在此先感謝。
您是否在同一應用程序的不同會話或同一會話中重新打開它時遇到問題?如果是後者,您可以在應用程序啓動時打開頻道,然後在應用程序關閉時關閉/取消註冊。 – 2011-04-09 18:36:40
@Paul Sasik我有麻煩,因爲tcpChannel只在所有連接都關閉後才關閉,所以我需要結束所有訪問到我的遠程對象。我想我可以通過做Remoting.Disconnect(object)來做到這一點,但它似乎沒有與已經共享的遠程對象一起工作,我必須手動完成。我現在會盡力去做。感謝您的全力支持,我對您的所有支持以及您幫助我們的速度感到驚歎。 – matutano 2011-04-10 13:32:14