2

基本上,我有一个需要使用 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

有没有更简单或更合适的方法来做到这一点?

4

1 回答 1

1

基本上你有两个选择:

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

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

于 2011-03-16T13:19:49.513 回答