Web引用如何知道要使用的地址?

时间:2013-08-07 12:56:32

标签: c# web-services soap wsdl asmx

我必须从新的C#类库项目中调用Web服务。我无法访问Web服务(不同的地理位置和封闭的网络,直到发布)。我确实有它的WSDL,并在我的新类库项目中添加了一个Web引用到WSDL。

我的问题是我没有看到我可以在哪里配置WSDL所基于的服务地址。现在可以很好地开发WSDL存​​根,但是当我将它发布到另一个开发中心时,他们需要能够为他们的服务设置正确的地址,以便我的服务调用它可以工作。

这里有通用的做法吗?即我可以添加的配置文件条目还是什么?

2 个答案:

答案 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" />