• 转载 NET Remoting中的通道注册


    今天我的同事使用Remoting注册一个新通道。奇怪的是,通道始终无法注册,总是报告异常“该通道已被占用”。我明白这个异常出现的原因,但不明白的是此时系统并未使用任何一个通道,为何会有这个异常呢?即使重新启动计算机也是如此,莫非有一个我们无法探测到的Remoting服务在顽强且隐匿的在吞噬着通道?无论是tcp通道和http通道均是如此,真是奇怪啊。

    当然要解决这个问题是非常easy的,只需要在注册新通道前加上如下几行代码就OK了:

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

    }


    //再注册新通道;
    TcpChannel newChannel = new TcpChannel(8080);
    //

    这也提示我们,在写Remoting的应用程序时,如果要注册新通道,似乎有检查已有注册通道的必要哦。

    转载地址:http://www.cnblogs.com/wayfarer/archive/2004/11/02/59577.html

    ----PS:

    我遇到的问题是在注册通道之前使用一个Remoting服务查数据(这个程序是客户端),结果这个服务起不来,报"The channel 'tcp' is already registered.“异常。

    按照上边的方法解决了问题。

  • 相关阅读:
    What is EJB
    Redis连接工具类
    MyBatis单列工厂的实现
    TCP和UDP的区别(Socket)
    webSocket协议与Socket的区别
    OSI七层模型
    Http协议和HTTPS协议
    Cookie和Session
    Request库使用response.text返回乱码问题
    Selenium元素定位问题
  • 原文地址:https://www.cnblogs.com/wangn/p/3445858.html
Copyright © 2020-2023  润新知