Заголовок SOAP Действие не было понято - PullRequest
4 голосов
/ 19 мая 2011

Я пытаюсь использовать веб-сервис в 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);

Ответы [ 5 ]

4 голосов
/ 06 июня 2012

Удалите веб-ссылку и вместо нее добавьте сервисную ссылку.

3 голосов
/ 05 июня 2013

Попробуйте использовать простую привязку конечной точки службы BasicHttpBinding. Эта привязка совместима с .NET 2.0.

0 голосов
/ 06 мая 2014

Ошибки SoapAction исчезли только тогда, когда я вошел в свойства «Настроить ссылку на службу ...» и обновил ссылку на службу, установив эти флажки.

и отметив эти два поля:

TICK Генерировать асинхронные операции TICK Всегда генерировать контракты сообщений

0 голосов
/ 14 марта 2014

Вот и хороший код, если он вам нужен:

//Set username and password for Basic Auth
service.ClientCredentials.UserName.UserName = "usernamehere";
service.ClientCredentials.UserName.Password = "passwordhere";

//Ignore invalid SSL certs
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
0 голосов
/ 19 марта 2012

Можете ли вы проверить с вашим поставщиком веб-услуг? Похоже, им нужна некоторая настраиваемая информация заголовка для обработки вашего запроса. Добавление таких заголовков поставщиками услуг очень распространено для повышения безопасности.

...