Справочник по службам Автоматически сгенерированные конфигурации дублированных привязок в App.Config в ASP.Net - PullRequest
1 голос
/ 01 мая 2020

У меня есть две разные сторонние 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 в файле конфигурации, но он был создан для первого. Это только моя мысль, я не подтвержден об этом. Я буду вам благодарен, если вы мне в этом поможете.

...