Действие заголовка SOAP не было понято

#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 исчезли только тогда, когда я зашел в свойства «Настроить ссылку на службу …» и обновил ссылку на службу, отметив эти параметры галочками.

и поставил эти два флажка:

ОТМЕТЬТЕ ГАЛОЧКОЙ Генерировать асинхронные операции ОТМЕТЬТЕ ГАЛОЧКОЙ Всегда генерировать контракты сообщений