如何确保机器名称有效并正在运行?

时间:2009-11-03 05:27:45

标签: wcf wcf-client

我在 Intranet 上的多台计算机上部署了wcf服务。用户可以通过SSL(客户端网络的安全连接)连接其机器,通过互联网访问机器。

用户有一个客户端应用程序来使用部署在客户端网络上的多台计算机上的Web服务。

我从客户端获取计算机名称并动态创建URL以在客户端应用程序中创建Web服务的客户端,如下所示:

的https:// 不同machine_name //test/testservice.svc

检查客户端尝试连接的计算机是否有效且正在运行(启动)的最佳方法是什么?

当超时过期时,可能会出现多种情况,例如其中一个原因中的网络延迟。

2 个答案:

答案 0 :(得分:0)

您可以尝试在您呼叫的端口上打开telnet。 如果它超时 - 有一个问题。 如果你想在更多阶段做到这一点 1.运行nslookup(查看ip-name是否正确) 2.运行ping(查看机器是否处于活动状态 - 如果没有阻止它的防火墙) 3.运行telnet到监听端口。

我做什么 - 我总是在WCF服务上发布一个测试方法 - 除了返回true之外什么都不做 - 所以我可以快速检查服务。

答案 1 :(得分:0)

我建议使用这三个命令:

# check we can resolve the host name
host machine_name 

# net cat, to check if the port is open
nc -vz machine_name 443 

# curl to see if the service is responding at the given URL
curl -I https://machine_name//test/testservice.svc

上述命令可以在Cygwin / Unix shell中运行。要在.NET项目中执行相同操作,可以下载libcurl-net。 curl命令/库调用将进行全面检查,如果失败,它应该能够告诉你大概问题在哪里。