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