我有一个内部使用的应用程序,并使用WCF进行客户端和服务器部分之间的通信,但是很快就需要部署到服务器名称不同的站点。 WCF服务使用netTcp绑定作为Windows服务托管。目前,使用Visual Studio中的“添加服务引用”命令指定服务的地址。
是否可以使WCF服务的基地址成为用户首选项,然后使服务引用在需要使用时动态构造URL。
例如,如果我有一个名为“CustomerService”的服务,那么不同地方的两个不同用户是否可以指定地址:
net-tcp://myserver1/
和
net-tcp://anotherserver/
并将服务引用根据需要转换为
net-tcp://myserver1/CustomerService
和
net-tcp://anotherserver/CustomerService?
谢谢,
吉姆
答案 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即可。