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

时间:2009-03-15 15:37:41

标签: wcf .net-3.5 deployment

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

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

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

net-tcp://myserver1/

net-tcp://anotherserver/

并将服务引用根据需要转换为

net-tcp://myserver1/CustomerService

net-tcp://anotherserver/CustomerService?

谢谢,

吉姆

2 个答案:

答案 0 :(得分:6)

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

var client = new MyServiceClient(
    "endpointConfigurationName", 
    "net-tcp://myserver1/CustomerService");

这样您就可以覆盖存储在app / web.config

中的地址值

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

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

答案 1 :(得分:0)

app.config或web.config中的配置中是不是所有这些信息都包含在内?只需更改端点配置中的URL即可。