如何更改WCF服务引用的地址?

use*_*295 4 deployment wcf .net-3.5

我有一个内部使用的应用程序,并使用WCF进行客户端和服务器部分之间的通信,但是很快就需要部署到服务器名称不同的站点.WCF服务使用netTcp绑定作为Windows服务托管.目前,使用Visual Studio中的"添加服务引用"命令指定服务的地址.

是否可以使WCF服务的基地址成为用户首选项,然后在需要使用时使服务引用动态构造URL.

例如,如果我有一个名为"CustomerService"的服务,那么不同地方的两个不同用户是否可以指定地址:

net-tcp://myserver1/
Run Code Online (Sandbox Code Playgroud)

net-tcp://anotherserver/
Run Code Online (Sandbox Code Playgroud)

并将服务引用转换为必要的

net-tcp://myserver1/CustomerService
Run Code Online (Sandbox Code Playgroud)

net-tcp://anotherserver/CustomerService?
Run Code Online (Sandbox Code Playgroud)

谢谢,

吉姆

Dar*_*rov 6

当您实例化客户端代理类(从ClientBase派生并实现您的服务合同的类)时,您可以指定一个远程地址:

var client = new MyServiceClient(
    "endpointConfigurationName", 
    "net-tcp://myserver1/CustomerService");
Run Code Online (Sandbox Code Playgroud)

这样您就可以覆盖存储在app/web.config中的地址值

如果直接使用ChannelFactory <T>类,则另一个选项:

var factory = new ChannelFactory<IMyServiceContract>(
    "endpointConfigurationName", 
    new EndpointAddress("net-tcp://myserver1/CustomerService"));
IMyServiceContract proxy = factory.CreateChannel();
Run Code Online (Sandbox Code Playgroud)