我有一个Web服务应用程序http://localhost:49804/Service1.asmx,我可以成功使用C#应用程序调用方法。
后来我在IIS(http://localhost/MyFirstWebService/Service1.asmx)上托管了相同的Web服务,我可以使用网页(http put / get)。
现在我已在C#应用程序中更新了http://localhost/MyFirstWebService/Service1.asmx的Web服务引用。 现在,如果我调用相同的方法,我会得到例外:
An endpoint configuration section for contract 'ServiceReference1.Service1Soap' could not be loaded because more than one endpoint configuration for that contract was found. Please indicate the preferred endpoint configuration section by name.
我已经搜索了这个问题,我意识到我需要在我的web.config文件中添加客户端和Web绑定。所以我在下面添加了一部分,但这并没有解决问题。
<system.serviceModel>
<client>
<endpoint address="http://192.168.1.3/MyFirstWebService/Service1.asmx" binding="basicHttpBinding"
contract="ClassABC" bindingConfiguration ="httpBinding"
name="BasicHttpBinding_IABC" />
</client>
</system.serviceModel>
在我的网络服务器应用程序中,我似乎错过了绑定? 我可以解决这个问题,任何参考或链接到我应该开始或任何示例应用程序将是很大的帮助。我是否需要更改Web服务或web.config文件中的任何更改应该是否足够?
答案 0 :(得分:0)
如果<configuration><system.serviceModel><bindings>
内有多个绑定,则需要按名称选择一个绑定并将其传递给Web服务客户端的构造函数,以消除歧义。
例如:
var svcClientObj = new CustomWebSvcClient("BasicHttpBinding_ICustomWebSvc_OverHttp");