C# 如何为网络计算机上运行的客户端配置WCF服务?

C# 如何为网络计算机上运行的客户端配置WCF服务?,c#,c#-3.0,wcf,wcf-binding,C#,C# 3.0,Wcf,Wcf Binding,我刚刚创建了一个WCF服务/客户机,在同一台机器上运行时,一切正常。但不知道如何将其配置为在不同的机器上运行。你知道怎么做吗 目前URI设置为 但我想我想要像网一样的东西。tcp://MyServer:8000 任何想法都很好。 谢谢。这里没有足够的信息来回答您的问题 假设您没有通过代码在ServiceHost和代理中设置地址/绑定/契约信息,则需要发布配置文件的部分 如果您是在代码中完成的,那么您需要显示您正在使用的代码 据我所知,您可能与传输绑定不匹配。服务和客户机必须在同一个传输(http

我刚刚创建了一个WCF服务/客户机,在同一台机器上运行时,一切正常。但不知道如何将其配置为在不同的机器上运行。你知道怎么做吗

目前URI设置为

但我想我想要像网一样的东西。tcp://MyServer:8000

任何想法都很好。
谢谢。

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

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

如果您是在代码中完成的,那么您需要显示您正在使用的代码


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

听起来,服务和客户机都在同一个可执行文件中。虽然可以做到这一点,但当您希望它们位于不同的计算机上时,您需要为服务(自托管或在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>

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