none
wcf客户端每隔1s向服务端请求,如何判断服务端是否可连接? RRS feed

  • 常规讨论

  • 你好,问题如题,现在我用是否抛出错误判断,试了用连接状态!=open判断貌似不行,不知道有什么好方法?

     判断服务端是否可连接,谢谢!

    2012年6月9日 1:41

全部回复

  • 你为什么要判断服务是否可用,服务应该是可用的,你这样会增加复杂度。

    适当的地方捕获异常即可,调用失败做一个统一处理。


    快乐在于能够长时间的为自己认为值得的事情努力工作,不管它是什么。

    2012年6月9日 11:32
  • 因为我的程序每隔一秒就会去调用服务提供的方法,但是这个服务有时候可能是没有开启的,所以客户端调用就会报错。

    所以现在如果服务没开启,我的程序每一秒都会抛出个错误出来,不知道有什么好点的解决方法。

    2012年6月12日 6:15
  • 服务有开启不开启这一说吗,好像只有激活不激活吧。开启是由客户端代理的工作啊。
    2012年6月12日 6:58
  • 因为我的程序每隔一秒就会去调用服务提供的方法,但是这个服务有时候可能是没有开启的,所以客户端调用就会报错。

    所以现在如果服务没开启,我的程序每一秒都会抛出个错误出来,不知道有什么好点的解决方法。

    你的服务部署在哪里? 应该都是自动激活的。你所说的没有开启,是不是自宿主的程序没有启动?


    快乐在于能够长时间的为自己认为值得的事情努力工作,不管它是什么。

    2012年6月14日 0:09
  • 就是宿主服务没启动

    2012年6月19日 4:18
  • 就是宿主服务没启动

    你把它宿主在IIS里面就好了,随机器自动启动,就不用这么担心了。

    快乐在于能够长时间的为自己认为值得的事情努力工作,不管它是什么。

    2012年6月24日 10:23
  • 我们做的应用桌面程序,没有iis
    2012年6月30日 1:21
  • 桌面程序,也可以把wcf 挂载在iis上。因为wcf服务只是个url地址。
    2012年7月2日 11:06
  • 你可以采用双工通信的方式,然后在WCF服务端用一张用户表来维护wcf的连接。

    2012年7月11日 12:45
  • 起个线程,用TcpClient.Connect,在System.Net.Socket下。

    bool isConnected = false;
    IPAddress address =
    Dns.GetHostAddresses("Server IP,不带端口")
          .FirstOrDefault(_ => _.AddressFamily == AddressFamily.InterNetwork);
    if (address != null)
    {
        try
        {
            new TcpClient().Connect(address, "端口");
            isConnected = true;
        }
        catch
        {
            isConnected = false;
        }
    }
    else
    {
        throw new InvalidOperationException("Invalid IP!");
    }
    
    return isConnected;


    2012年7月19日 14:01