logeeks
logeeks

Reputation: 4977

SOAP header Action was not understood

I am trying to consume a webservice in C#. Whenever i try to call the function from the web service class I am getting a "SOAP header Action was not understood".I've added web reference[not service reference] pointing the web service in my project. The following steps were taken to add the web reference

1) right click on the project -> Add WebReference

when i examined the web service in web browser i found this in the header

<wsdl:definitions name="MyService" targetNamespace="http://tempuri.org/">
    <wsp:Policy wsu:Id="WSHttpBinding_ICAIService_policy">
        <wsp:ExactlyOne><wsp:All><sp:TransportBinding>
    <wsp:Policy>

I've done the following code to call the web service functions

WebStruct webS = new WebStruct();
webS.Name = "Peter";
webS.ID = 22;

webS.Find(webS);

Upvotes: 5

Views: 21726

Answers (4)

hamish
hamish

Reputation: 1182

SoapAction errors only went away when I went into the "Configure Service Reference..." properties and updated the Service Reference with these options ticked.

and ticked these two boxes:

TICK Generate asynchronous operations TICK Always generate message contracts

Upvotes: 0

Milan Matějka
Milan Matějka

Reputation: 2752

Try to use simple service endpoint binding BasicHttpBinding. This binding is compatible with .NET 2.0.

Upvotes: 4

Anthony Faull
Anthony Faull

Reputation: 17957

Remove the Web Reference and add a Service Reference instead.

Upvotes: 5

Shailesh
Shailesh

Reputation: 1218

Can you check with your webservice provider? Seems they need some customized header information to process your request. Adding such headers by the service providers are very much common to increase the security.

Upvotes: 0

Related Questions