#c# #web-services #asmx #wshttpbinding #webhttpbinding
#c# #веб-сервисы #asmx #wshttpbinding #webhttpbinding
Вопрос:
Я пытаюсь использовать веб-сервис на C #. Всякий раз, когда я пытаюсь вызвать функцию из класса веб-сервиса, я получаю сообщение «Действие заголовка SOAP не было понято».Я добавил веб-ссылку [не ссылку на службу], указывающую на веб-службу в моем проекте. Для добавления веб-ссылки были предприняты следующие шаги
1) щелкните правой кнопкой мыши по проекту -> Добавить веб-ссылку
когда я исследовал веб-службу в веб-браузере, я обнаружил это в заголовке
<wsdl:definitions name="MyService" targetNamespace="http://tempuri.org/">
<wsp:Policy wsu:Id="WSHttpBinding_ICAIService_policy">
<wsp:ExactlyOne><wsp:All><sp:TransportBinding>
<wsp:Policy>
Я выполнил следующий код для вызова функций веб-службы
WebStruct webS = new WebStruct();
webS.Name = "Peter";
webS.ID = 22;
webS.Find(webS);
Комментарии:
1. Как
wsHttpBinding
иwebHttpBinding
связаны с вашим вопросом? Web reference использует более старый ASMX API и не поддерживает службы, предоставляемые в этих привязках. На самом делеwebHttpBinding
также не поддерживается Add service reference.
Ответ №1:
Удалите веб-ссылку и добавьте вместо нее ссылку на службу.
Комментарии:
1. да, это исправило то же сообщение об ошибке для меня. Спасибо.
2. Это не исправило для меня. WsBinding не понимает эти заголовки
Ответ №2:
Попробуйте использовать простую привязку конечной точки сервиса BasicHttpBinding. Эта привязка совместима с .NET 2.0.
Комментарии:
1. Большое спасибо, это действительно помогло мне.
Ответ №3:
Можете ли вы уточнить у своего поставщика веб-услуг? Кажется, им нужна некоторая настроенная информация заголовка для обработки вашего запроса. Добавление таких заголовков поставщиками услуг очень распространено для повышения безопасности.
Ответ №4:
Ошибки SOAPAction исчезли только тогда, когда я зашел в свойства «Настроить ссылку на службу …» и обновил ссылку на службу, отметив эти параметры галочками.
и поставил эти два флажка:
ОТМЕТЬТЕ ГАЛОЧКОЙ Генерировать асинхронные операции ОТМЕТЬТЕ ГАЛОЧКОЙ Всегда генерировать контракты сообщений