Reputation: 4977
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
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
Reputation: 2752
Try to use simple service endpoint binding BasicHttpBinding. This binding is compatible with .NET 2.0.
Upvotes: 4
Reputation: 17957
Remove the Web Reference and add a Service Reference instead.
Upvotes: 5
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