Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Call into WCF Service WITHOUT specifying SoapAction

1,997 views
Skip to first unread message

Gaston

unread,
Mar 26, 2009, 11:38:00 AM3/26/09
to
Hi,
My WCF web service will be called from a Java client that we don't control.
The client sends its requests WITHOUT specifying the SoapAction. This results
in this exception from the service:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<ActivityId CorrelationId="a7ad16f5-b8b9-4b71-9a53-d0e6f29f5020"
xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">496debc4-488d-46f3-8181-8bfaef14a9e1</ActivityId>
</s:Header>
<s:Body>
<s:Fault>
<faultcode
xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode>
<faultstring xml:lang="nl-BE">The message with Action '' cannot be
processed at the receiver, due to a ContractFilter mismatch at the
EndpointDispatcher. This may be because of either a contract mismatch
(mismatched Actions between sender and receiver) or a binding/security
mismatch between the sender and the receiver. Check that sender and receiver
have the same contract and the same binding (including security requirements,
e.g. Message, Transport, None).</faultstring>
<detail>
<z:anyType i:nil="true"
xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>

I suppose that there is some way to configure my web service to behave like
an ASMX web service (in this case: not requiring the SoapAction http header).
I have checked out the web.config file, with no succes.

I have looked at the method:

[System.ServiceModel.OperationContractAttribute(Action="http://xxx.com/UIM/Notification/wsdl/1/notificationUser")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
xxx.notificationUserResponse
notificationUser(xxx.notificationUserRequest request);

Here I have tried to remove the Action parameter, put it to "", put it to
"*", all with no luck.

Any help would be highly appreciated!

Thanks in advance,
Gaston Verelst

Prakash Patil

unread,
May 10, 2009, 1:20:32 AM5/10/09
to

Hi Gaston,

The problem here is that WCF service is getting a soapaction as ''
(blank or missing action), you can either send it explicitly from your
client or put it to Action="*" in WCF.

Try putting it directly as below:

[OperationContract(Action="*")]
xxx.notificationUserResponse
notificationUser(xxx.notificationUserRequest request);

and this should work, as all actions without any action parameters will
be accepted by WCF.

Let me know if you still face any issue.

*** Sent via Developersdex http://www.developersdex.com ***

0 new messages