我必须从新的 C# 类库项目中调用 Web 服务。我还不能访问网络服务(不同的地理位置和封闭的网络,直到发布)。但是,我确实有它的 WSDL,并且在我的新类库项目中向 WSDL 添加了一个 Web 引用。
我的问题是我看不到在哪里可以配置 WSDL 所基于的服务地址。目前针对 WSDL 存根进行开发很好,但是当我将其发布到其他开发中心时,他们需要能够为他们的服务设置正确的地址,以便我的服务调用可以正常工作。
这里有一个常见的做法吗?即我可以添加的配置文件条目还是什么?
我必须从新的 C# 类库项目中调用 Web 服务。我还不能访问网络服务(不同的地理位置和封闭的网络,直到发布)。但是,我确实有它的 WSDL,并且在我的新类库项目中向 WSDL 添加了一个 Web 引用。
我的问题是我看不到在哪里可以配置 WSDL 所基于的服务地址。目前针对 WSDL 存根进行开发很好,但是当我将其发布到其他开发中心时,他们需要能够为他们的服务设置正确的地址,以便我的服务调用可以正常工作。
这里有一个常见的做法吗?即我可以添加的配置文件条目还是什么?
如果您使用 VS 添加了 Web 引用,它将自动在您的 .config 文件中创建相应的设置。
您还可以在 Settings.settings 中查看/修改它。
NB 默认情况下 VS 设置此设置以生成默认值(我相信它基于您用于添加引用的原始值,并且它被埋在生成的代码文件中的某个位置)。您可以通过查看项目的属性 --> 设置来禁用此功能,突出显示 WSDL 设置,然后在属性选项卡(停靠窗口)中设置 GenerateDefaultValueInCode = False。
部署后,可以通过修改相关的 .config 文件值来更新 WSDL 位置。
编辑:Web 参考 URL 行为属性应设置为动态。
在您的 app.config 中查找端点节点,更改不同环境的 URL
<configuration>
<system.serviceModel>
<bindings>
...
</bindings>
<client>
<endpoint address="#URL#"
binding="xxx" bindingConfiguration="xxx"
contract="xxx" name="xxx" />