Мне нужно подключиться к устаревшей веб-службе.
В Visual Studio, если я делаю ссылку на добавление службы, введите URL-адрес файла WSDL на сервере. Появляется мой сервис, и я пишу код против него. Но когда я запускаю код, я получаю эту ошибку:
System.ServiceModel.CommunicationException: версия конверта входящего сообщения (Soap12 (http://www.w3.org/2003/05/soap-envelope)) не соответствует таковому у кодировщика (Soap11 (http://schemas.xmlsoap.org/soap/envelope/)). Убедитесь, что привязка настроена с той же версией, что и ожидаемые сообщения.
Мой app.config выглядит так:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="LoginServiceSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://server/Service.asmx" binding="basicHttpBinding"
bindingConfiguration="LoginServiceSoap" contract="Stuff.Login.LoginServiceSoap"
name="LoginServiceSoap" />
</client>
</system.serviceModel>
Однако я могу нормально общаться со службой, если добавлю «Веб-ссылку». Но я понимаю, что теперь я должен использовать ссылки на службы вместо WebReferences. Я предполагаю, что у меня что-то не так в приведенной выше конфигурации.
Или я вынужден использовать веб-ссылку из-за типа службы, к которой я подключаюсь?