For a customer I must implement a SOAP webservice according to their WSDL. I do not know what framework they will use to call the service, but it's not .Net.
I have generated the code for the code for the webservice with wsdl.exe (using the 'serverinterface' parameter) and put it into an asmx webpage. For now the web methods have no real implementation. They simply return the expected return values and nothing else. The service seems to work, so far, so good.
The problems come with a simple test client. It's a console application with a web reference to the service. Whenever I try to call a web method, I will get a SOAP exeption. I would post it here, but it's perfect German and contains a lot of information which I would not like to post here.
Essentially it says that each web method must have a unique value for 'SOAPaction'. The customer's WSDL contains only empty strings for the SOAPaction fields, so I must assume that this is correct and as they expect it. As I understand, the SOAPaction field has become more optional in SOAP 1.1 or SOAP 1.2.
As I can't change the service, how can I get the test client to call it without any values for the SOAPactions?
What I have tried:
I have tried to generate the service's code with every suitable option of WSDL.exe. The only option that I have not tried yet will be to specify to use SOAP 1.1 or SOAP 1.2 directly. That may be worth another try. What I hope for is some kind of setting that tells the client not to use the SOAPAction parameter in its calls, but I have no idea what exactly to do to get there.
Edit: I have disallowed the SOAP 1.1 protocol in the service's web.config. Now I can call web methods without any SOAP exceptions and do indeed get a response. The only strange thing still is that the property that I set in the response object to confirm that the right web method was called is null. Debugging into the service also does not work yet.