如何使用来自远程服务器的net.tcp端点ping或检查WCF服务的状态?

atc*_*way 38 .net wcf

我真的来自世界,Http并且从未使用过使用TCP的旧.NET Remoting,但我理解TCP概念,现在已经使用net.tcp绑定在过去几年中实现了几个WCF服务.大部分时间它都在运行,我消耗它,故事结束.但是,有时服务器设置更高级,我得到1个服务器上存在的通信错误,而不是来自另一个服务器.证明它是否是防火墙/服务器/等.问题我需要看看是否可以毫无问题地看到或达到WCF服务.这是使用net.tcp的Windows服务托管WCF服务,我试图找出这种情况.

事情是通过HTTP绑定公开WCF服务,我可以在浏览器中填充URI以查看服务页面,让我知道服务正在正常运行.简单的测试.

如何通过net.tcp绑定公开WCF服务的等价物?有没有我可以用来测试的工具或命令net.tcp//mycustomWCFService:8123/MyService?我已经看到一些关于编写代码的帖子,以编程方式确定WCF服务是否可用,但我不希望这样做.我想在没有代码的情况下进行检查,类似于我在浏览器中提取http端点.

任何帮助表示赞赏,谢谢!

Jas*_*ntz 49

如果您的服务实现了元数据端点(通常命名mex并嵌套在主要端点下,使用mexTcpBinding本例中实现),则可以使用随Visual Studio提供的svcutil命令行实用程序对其进行"ping".例如,

svcutil net.tcp://mycustomWCFService:8123/MyService/mex
Run Code Online (Sandbox Code Playgroud)

如果它抛出错误,您的服务(可能)会失败.如果成功,你(可能)开展业务.如前面的括号所示,这是一个近似值.这意味着该地址有一个监听器,并且能够为元数据请求提供服务.

  • 不,它不会,但它没有我所知道的任何依赖,所以只要你可以将它复制到你将在商业中的远程服务器. (2认同)

atc*_*way 32

我发现至少看它是否正在侦听的另一种方法是在已安装的服务器上发出以下'netstat'命令(来自命令提示符):

netstat -ona | 找到"8123"

(是的,这是上面命令中的管道分隔符).如果返回任何内容,它将主动侦听并托管在搜索的端口上.