我正在尝试在两台机器之间进行WCF通信,其中一台机器将充当服务器而另一台机器充当客户机。我能够在我的系统中使它工作,但当我尝试连接到我朋友的系统时它不起作用。
编辑:现在发生了一件奇怪的事情。我刚刚通过提供“wcftestclient address”从命令提示符启动了wcftestclient。它检索了我朋友服务器的元数据。但是,当我调用该操作时,它会给出错误“没有端点侦听localhost”。怎么可能是localhost?它应该是我朋友的IP地址,对吧?答案 0 :(得分:0)
<add baseAddress=...>
是<services>
部分的一部分,而不是客户端。要更改WCF 客户端使用的基址,您需要在客户端部分设置地址:
<client>
<endpoint address="http://your_friend_ip/address" binding=... contract=..." />
</client>
另请注意,您可能需要在服务的防火墙中打开一些端口才能完成请求。
另一件事,如果您朋友的服务启用了元数据,那么您可以通过指向您朋友的服务在您的计算机上添加服务引用(使用VS添加服务引用,或使用svcutil),这将创建具有适当端点地址的配置。