我正在使用VS2012并成功添加了对Web服务的服务引用,我们称之为Web Service A.我可以连接并与该Web服务交互,一切正常。
我需要连接到另一个版本的Web服务(Web服务B),它基本上是相同的,但一个用于实时,另一个用于测试。这些网址是不同的,所以我想我可以添加第二个引用而没有问题。
然而,当我添加Web Service B时,一切似乎都正常工作(web.config被修改等)但是我与Web服务A交互的所有现有代码都中断了,visual studio的行为就像它不知道哪些类我正试图实例化。
我可以通过更改代码轻松切换两个非常相似的Web引用(不同的URL)吗?我原以为我可以,但也许不是吗?
答案 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将其替换为正确的地址。