WCF:客户端上的服务引用的动态地址

时间:2011-03-16 13:14:35

标签: debugging wcf release service-reference

基本上,我有一个需要使用WCF服务(Calculator.svc)的应用程序。在调试过程中,该服务正在我的本地计算机上托管,但在发布时,该服务正在IIS服务器上托管。

调试地址:http://localhost/MyProj/Services/Calculator.svc
发布地址:http://www.mycompany.com/Services/Calculator.svc

如果我不添加服务引用并手动构建服务,这不再是问题。但是,如果我向本地主机地址添加服务引用,那么如何在发布模式下动态更改它?

<小时/> 注意:我确实意识到我可以创建一个新的CalculatorClient并在我自己的Binding和EndpointAddress中提供,但这是正确的方法吗?

CalculatorClient client;

#if NOT DEBUG
Binding binding = new BasicHttpBinding("MyConfig");
EndpointAddress remoteAddress = new EndpointAddress("http://www.mycompany.com/Services/Calculator.svc");

client = new CalculatorClient(binding, remoteAddress);

#else
client = new CalculatorClient();
#endif

有更简单的方法或更合适的方法吗?

1 个答案:

答案 0 :(得分:1)

基本上你有两个选择:

1)更改构建/部署脚本中app.config的值。

2)两者使用相同的地址。在您的开发计算机上,可以通过在HOSTS文件中添加一个条目www.mycompany.com到localhost来设置。完成此操作后,您在iis中为主机标头www.mycompany.com设置了一个网站,并从那里为项目提供服务。