如何在不重新编译的情况下动态切换.NET中的Web服务地址?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我有引用Web服务的代码,并且我希望该Web服务的地址是动态的(从数据库,配置文件等中读取),以便轻松更改。其中一个主要用途是部署到机器名称和IP地址不同的多个环境。所有部署中的Web服务签名都是相同的,只是位于其他地方。

也许我刚刚被Visual Studio“添加Web引用”向导所迷惑 - 尽管这似乎应该是相对容易的事情。

提问于
用户回答回答于

当您生成Web引用并在解决方案资源管理器中单击Web引用时。在属性窗格中,应该看到如下所示的内容:

将该值更改为动态将在app.config中添加一个条目。

这里是CodePlex文章,有更多的信息。

用户回答回答于

如果你真的动态地设置它,你应该设置你正在调用的代理类实例的.Url字段。

在程序中设置.config文件中的值:

  1. 是一个烂摊子;
  2. 在下一次应用程序启动之前可能不会被读取。

如果只是每次安装需要完成一次,我会同意其他海报并使用.config文件和动态设置。

扫码关注云+社区