У меня есть две разные сторонние wsdl файлы. Когда я добавляю сервисные ссылки в мой проект. Он автоматически создает конечные точки в app.config. Эти конечные точки:
<endpoint address="http://tgif1.bestovernite.com:10010/web/services/TQUOTEAPI.TQUOTEAPIHttpSoap11Endpoint/"
binding="basicHttpBinding" bindingConfiguration="TQUOTEAPISoap11Binding"
contract="OverniteLTL.TQUOTEAPIPortType" name="TQUOTEAPIHttpSoap11Endpoint" />
<endpoint address="http://208.98.171.28:10021/web/services/TQUOTEAPI.TQUOTEAPIHttpSoap11Endpoint/"
binding="basicHttpBinding" bindingConfiguration="TQUOTEAPISoap11Binding1"
contract="DiamondLineService.TQUOTEAPIPortType" name="TQUOTEAPIHttpSoap11Endpoint1" />
Обратите внимание, что атрибуты bindingConfiguration одинаковы, только разница в том, что 1 добавляется во второй. просто чтобы сделать его уникальным. Когда я создаю клиент второй конечной точки в коде для создания запроса, он выдает следующее исключение. Привязка в system.serviceModel / bindings / basicHttpBinding не имеет настроенной привязки с именем 'TQUOTEAPISoap11Binding'. Это недопустимое значение для bindingConfiguration.
Во время поиска в Google я нашел решение для этого исключения. добавьте тег привязки в web.config следующим образом.
<bindings>
<basicHttpBinding>
<binding name="TQUOTEAPISoap11Binding1"/>
</basicHttpBinding>
</bindings>
Это не работает для меня, и я получаю то же исключение. Я думаю, клиент сервиса Diamondline (вторая конечная точка) пытается найти TQUOTEAPISoap11Binding в файле конфигурации, но он был создан для первого. Это только моя мысль, я не подтвержден об этом. Я буду вам благодарен, если вы мне в этом поможете.