0

我刚刚创建了一个 WCF 服务/客户端,并且在同一台机器上运行时一切正常。但无法弄清楚如何配置它以在不同的机器上运行。你知不知道怎么?

目前 URI 设置为http://localHost:8000 ......

但我想我想要类似 net.tcp://MyServer:8000 ......

任何想法都会很棒。谢谢。

4

2 回答 2

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>

主要是确保客户端和服务器可以通过指定的端口和协议相互通信(主要是确保防火墙不会阻止通信)。要注意的另一件事是更改绑定协议可能会影响服务的其他方面(安全性是一个大问题,也是您可以对服务做什么和不能做什么)。

于 2009-01-05T18:05:12.217 回答
0

这里没有足够的信息来回答你的问题。

假设您没有通过代码在 ServiceHost 和代理中设置地址/绑定/合同信息,您需要发布配置文件的部分。

如果您在代码中执行此操作,那么您需要显示您正在使用的代码。

据我所知,您似乎与传输绑定不匹配。服务和客户端必须在同一传输(http、tcp、命名管道等)上。

于 2009-01-05T17:27:23.807 回答