1

我在内网上的多台机器上部署了一个 wcf 服务。用户可以通过 SSL(客户端网络的安全连接)连接机器,通过 Internet 访问机器。

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

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

https:// machine_name //test/testservice.svc

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

当超时过期时可能会有多个条件,例如网络延迟是其中一个原因..

4

2 回答 2

0

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

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

于 2009-11-03T05:32:00.390 回答
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 命令/库调用将进行完整检查,如果失败,它应该能够告诉您问题的大致位置。

于 2009-11-03T05:54:31.157 回答