我刚刚创建了一个WCF服务/客户端,在同一台机器上运行时一切正常。但无法弄清楚如何配置它在不同的机器上运行。你知道吗?
目前,URI设置为http://localHost:8000 ......
但我想我想要像net.tcp:// MyServer:8000 ...... ..
任何想法都会很棒。 感谢。
答案 0 :(得分:1)
从听起来,您将服务和客户端都放在同一个可执行文件中。虽然可以这样做,但是当您希望它们位于不同的计算机上时,您需要拥有服务的可执行文件/主机(自托管或IIS)和客户端的可执行文件。每个都需要在相应的配置部分中使用地址,绑定和合同进行正确配置。所以在服务器上你会有这样的东西:
<configuration>
<system.serviceModel>
<services>
<service name="YourService">
<endpoint address="http://MyServer:8000/..."
binding="BasicHttpBinding"
contract="Your.IContract" />
</service>
</services>
</system.serviceModel>
</configuration>
在客户端,你有这个:
<configuration>
<system.serviceModel>
<client>
<endpoint address="http://MyServer:8000/..."
binding="BasicHttpBinding"
contract="Your.IContract"
name="ClientEndpoint" />
</client>
</system.serviceModel>
</configuration>
主要是确保客户端和服务器可以通过指定的端口和协议相互通信(主要是确保防火墙不阻止通信)。另一件需要注意的事情是更改绑定协议可能会影响服务的其他方面(安全性很大,但也可以使用服务做什么)。
答案 1 :(得分:0)
此处没有足够的信息来回答您的问题。
假设您没有通过代码在ServiceHost和代理中设置地址/绑定/合同信息,您需要发布配置文件的部分。
如果您在代码中执行此操作,则需要显示正在使用的代码。
据我所知,您似乎可能与传输绑定不匹配。服务和客户端必须在同一个传输上(http,tcp,命名管道等)。