今天我的同僚使用Remoting注冊一個新通道。奇怪的是,通道始終無法注冊,總是報告異常“該通道已被占用”。我明白這個異常出現的原因,但不明白的是此時系統并未使用任何一個通道,為何會有這個異常呢?即使重新啟動計算機也是如此,莫非有一個我們無法探測到的Remoting服務在頑強且隐匿的在吞噬着通道?無論是tcp通道和http通道均是如此,真是奇怪啊。
當然要解決這個問題是非常easy的,隻需要在注冊新通道前加上如下幾行代碼就OK了:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-YWan5SM1AzMmVmN5cTOklTY2QzYxcDMjVTM3UGMkdjMxQzY48CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.gif)
if (ChannelServices.RegisteredChannels.GetLength(0) > 0)
{
foreach (IChannel channel in ChannelServices.RegisteredChannels)
{
ChannelServices.UnregisterChannel(channel);
}
}
//再注冊新通道;
TcpChannel newChannel = new TcpChannel(8080);
//
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-YWan5SM1AzMmVmN5cTOklTY2QzYxcDMjVTM3UGMkdjMxQzY48CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.gif)
//再注冊新通道;