今天我的同事使用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)
//再注册新通道;