Visual Studio - 添加两个Web引用

时间:2014-08-26 14:40:01

标签: c# asp.net web-services visual-studio-2012 asmx

我正在使用VS2012并成功添加了对Web服务的服务引用,我们称之为Web Service A.我可以连接并与该Web服务交互,一切正常。

我需要连接到另一个版本的Web服务(Web服务B),它基本上是相同的,但一个用于实时,另一个用于测试。这些网址是不同的,所以我想我可以添加第二个引用而没有问题。

然而,当我添加Web Service B时,一切似乎都正常工作(web.config被修改等)但是我与Web服务A交互的所有现有代码都中断了,visual studio的行为就像它不知道哪些类我正试图实例化。

我可以通过更改代码轻松切换两个非常相似的Web引用(不同的URL)吗?我原以为我可以,但也许不是吗?

2 个答案:

答案 0 :(得分:0)

如果一个用于实时,另一个用于测试,我将添加web.config转换,然后在“测试”下运行您的代码。配置。

有关web.config的更多信息,请转到此处: http://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx

答案 1 :(得分:0)

当您添加服务或Web引用以及VS创建的所有代码时,重要的一点是web.config(或App.Config)中的内容:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="TempConvertSoap" />
        </basicHttpBinding>
        <customBinding>
            <binding name="TempConvertSoap12">
                <textMessageEncoding messageVersion="Soap12" />
                <httpTransport />
            </binding>
        </customBinding>
    </bindings>
    <client>
        <endpoint address="http://www.w3schools.com/webservices/tempconvert.asmx"
                  binding="basicHttpBinding" bindingConfiguration="TempConvertSoap"
                  contract="ServiceReferenceA.TempConvertSoap" name="TempConvertSoap" />
        <endpoint address="http://www.w3schools.com/webservices/tempconvert.asmx"
                  binding="customBinding" bindingConfiguration="TempConvertSoap12"
                  contract="ServiceReferenceA.TempConvertSoap" name="TempConvertSoap12" />
    </client>
</system.serviceModel>

这个例子来自w3schools的温度转换服务。

在您的方案中,您只需要添加一个Web引用,然后要连接到另一个,请更改此部分,尤其是endpoint -> address属性; 只要网络服务是IDENTICAL ,就可以顺利运行。

作为奖励,作为web.config或app.config的一部分,您可以在构建Release时使用config tranforms将其替换为正确的地址。