【问题标题】:WCF: Dynamic address for service reference on clientWCF:客户端上服务引用的动态地址
【发布时间】:2011-03-16 13:14:35
【问题描述】:

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

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

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


注意:我确实意识到我可以创建一个新的 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

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

【问题讨论】:

    标签: debugging wcf release service-reference


    【解决方案1】:

    基本上你有两个选择:

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 2021-05-14
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多