Почему я должен добавить ссылку на URL/service.svc, но тогда он создает привязку для URL/service.svc/soap?
Я подключаю решение к веб-сервису на основе WCF SOAP. URL находится в формате:
Однако, когда я добавляю ссылку, конфигурация выглядит следующим образом:
<client>
<endpoint address="http://upload.pete.vls.com/api/HmlApi.svc/soap"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IHmlApi"
contract="ServiceReference1.IHmlApi" name="BasicHttpBinding_IHmlApi" />
</client>
Я не понимаю, почему, когда я добавляю ссылку с / soap / в конце, она не работает. Но когда я не добавляю его, функция "добавить ссылку" находит сервис и добавляет его с помощью / soap / в любом случае.
2 ответа
URL, который вы вводите (без soap
часть) включает в себя информацию о том, какие виды услуг транспорта предлагаются. VS выбирает soap
от этого, и сохраняя правильный адрес конечной точки в конфигурации.
Этот конечный URL не будет правильным для того, что запрашивается, когда вас попросят. Потому что он ожидает URL с информацией об услуге, а не фактическую конечную точку, которая в конечном итоге будет использоваться.
Потому что ваша конечная точка на сервере, вероятно, настроена так
<services>
<service name="YourService">
<endpoint name="mySOAPEndpoint" address="soap" binding="someHttpBinding" contract="IYourService" />
</service>
</services>
Обратите внимание, что адресом является "мыло", которое является относительным путем после вашего URI службы (т. Е. После.svc). Если вы напишите address="", то ваш.svc URI будет таким же, как ваш адрес конечной точки.