只open,没有close
所以你重新new之后,相当于新建了一个连接,原来的连接还在

解决方案 »

  1.   

    host是个引用类型,你只相当于获得了ServiceHost的句柄,可以对它操作而已
    并不是重新new之后原来的就自动释放了
      

  2.   

    那我怎么注销掉原来的连接,并且我new了一个ServiceHost,然后重新绑定服务器和端口,按理就应该连接新的服务器啊,但还在连接上一次的服务器。。多改几个还是连接第一次启动那个服务器。
      

  3.   

    新的服务器已经在连接了,只不过旧的也在连接
    想断开连接,执行close啊
      

  4.   


    我在new之前做了这个,还是不行private void CloseWcf()
            {
                if (host == null) return;
                if (host.State==CommunicationState.Opened)
                    host.Close();
                host = null;
            }
               CloseWcf();                       
                NetTcpBinding binding = new NetTcpBinding();
                binding.Security.Mode = SecurityMode.None;
                WcfService Service = new WcfService();
                Service.OnServiceHandler += new ServiceHandler(Service_OnServiceHandler);
                host = new ServiceHost(Service);
      

  5.   


    我在new ServiceHost之前,通过监控发现host是断开的,并且给赋了值为null。
      

  6.   

    又发现一个进展,,先strNetServer 设成能监听的参数,如localhost,然后断开再将strNetServer改为一个无效的参数,如192.168.1.188,再连接,马上报
    ”侦听 IP 终结点=192.168.1.188:918 时出现 TCP 错误(10049: 在其上下文中,该请求的地址无效。)。”
    如果反之,将改成192.168.1.188连接,马上报如上错误,但改回localhost,连接还是报如上错误,就感觉没有改到strNetServer似的