我有一个内部使用的应用程序,并使用WCF进行客户端和服务器部分之间的通信,但是很快就需要部署到服务器名称不同的站点.WCF服务使用netTcp绑定作为Windows服务托管.目前,使用Visual Studio中的"添加服务引用"命令指定服务的地址.
是否可以使WCF服务的基地址成为用户首选项,然后在需要使用时使服务引用动态构造URL.
例如,如果我有一个名为"CustomerService"的服务,那么不同地方的两个不同用户是否可以指定地址:
net-tcp://myserver1/
和
net-tcp://anotherserver/
并将服务引用转换为必要的
net-tcp://myserver1/CustomerService
和
net-tcp://anotherserver/CustomerService?
谢谢,
吉姆
当您实例化客户端代理类(从ClientBase派生并实现您的服务合同的类)时,您可以指定一个远程地址:
var client = new MyServiceClient( "endpointConfigurationName", "net-tcp://myserver1/CustomerService");
这样您就可以覆盖存储在app/web.config中的地址值
如果直接使用ChannelFactory
var factory = new ChannelFactory( "endpointConfigurationName", new EndpointAddress("net-tcp://myserver1/CustomerService")); IMyServiceContract proxy = factory.CreateChannel();