I get the
“System.InvalidOperationException: The operations methodX and methodY have the same action (). Every operation must have a unique action value”, when trying to mock a Java Web Service with Rhino Mocks in CSharp.
The WSDL-file that was downloaded from the Java Web Service declared an empty soap action for each exported operation.
For example:
<operation name="aMethod"> <soap:operation soapAction="" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> <fault name="MyWebServiceException"> <soap:fault name="MyWebServiceException" use="literal" /> </fault> </operation>
WCF uses the action to dispatch an incoming message to the correct method, see Action Property. Each method must have a unique action value.
I solved it by downloading the WSDL-file and remove all soap action declarations:
<soap:operation soapAction="" />
I ran the svcutil.exe on the changed WSDL-file.
WCF then creates unique action values in the service interface file, and the service can be mocked (as I described in Mocking WCF service).
No comments:
Post a Comment