天天看點

.NET Remoting中的通道注冊

今天我的同僚使用Remoting注冊一個新通道。奇怪的是,通道始終無法注冊,總是報告異常“該通道已被占用”。我明白這個異常出現的原因,但不明白的是此時系統并未使用任何一個通道,為何會有這個異常呢?即使重新啟動計算機也是如此,莫非有一個我們無法探測到的Remoting服務在頑強且隐匿的在吞噬着通道?無論是tcp通道和http通道均是如此,真是奇怪啊。

當然要解決這個問題是非常easy的,隻需要在注冊新通道前加上如下幾行代碼就OK了:

.NET Remoting中的通道注冊

if (ChannelServices.RegisteredChannels.GetLength(0) > 0)
{
    foreach (IChannel channel in ChannelServices.RegisteredChannels)
    {
        ChannelServices.UnregisterChannel(channel);
    }
}

//再注冊新通道;
TcpChannel newChannel = new TcpChannel(8080);
//      
.NET Remoting中的通道注冊

//再注冊新通道;

繼續閱讀