Добавление веб-службы ASMX в качестве ссылки на службу генерирует несколько конечных точек

109
13

В последнее время во всех моих новых веб-приложениях я добавлял веб-сервисы как ссылки на службы, а не веб-ссылки. Большинство наших веб-сервисов были разработаны как веб-службы asmx.

После добавления ссылки на службу мой web.config всегда выглядит так:

<bindings>
<basicHttpBinding>
<binding name="UserSoap" />
</basicHttpBinding>
<customBinding>
<binding name="UserSoap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="{{service URL}}" binding="basicHttpBinding"
bindingConfiguration="UserSoap" contract="User.UserSoap"
name="UserSoap" />
<endpoint address="{{service URL}}" binding="customBinding"
bindingConfiguration="UserSoap12" contract="User.UserSoap"
name="UserSoap12" />
</client>

Тогда мое приложение дает эту ошибку, когда я пытаюсь ее использовать:

Не удалось загрузить раздел конфигурации конечных точек для контракта User.UserSoap, поскольку было найдено более одной конфигурации конечных точек для этого контракта. Пожалуйста, укажите предпочтительный раздел конфигурации конечной точки по имени.

Я вручную удалял одну из конечных точек, но теперь хочу знать, как это исправить. Любые идеи о том, как я могу предотвратить это, или почему это происходит?

спросил(а) 2021-01-25T17:01:47+03:00 4 месяца, 4 недели назад
1
Решение
76

Если вы хотите удалить поддержку SOAP 1.2 для своей службы, вы должны включить в свой web.config следующее:

<configuration>
<system.web>
<webServices >
<protocols>
<remove name="HttpSoap12"/>
</protocols>
</webServices>
</system.web>
</configuration>

Добавить или удалить SOAP 1.2 для служб ASMX

В противном случае вам потребуется получить доступ с именем конечной точки.

var service = new User.UserSoapClient("UserSoap")

ответил(а) 2021-01-25T17:01:47+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема