tags:

views:

495

answers:

1

I'm a little confused about how SOAPAction is implemented in WCF (and other web service frameworks for that matter).

In a test client, I have a Client Message Inspector configured to grab both the SOAP message and any HTTP headers that are being sent with the request. At least here in the client message inspector, the action shows up as an element in the SOAP Header:

<s:Header>
    <Action ... >http://myurl.com/2009/11/MyService/MyMethod&lt;/Action&gt;

However, if I view the request in Fiddler, the Action element is missing and instead there is now an additional entry in the HTTP Headers:

SOAPAction: "http://myurl.com/2009/11/MyService/MyMethod"

Can anyone explain what the heck is going on??

Thanks!

+2  A: 

Seems to me as if those two are equivalent, no? I guess Fiddler just interprets that SOAP header "", calling it "SOAPAction". The value appears to be the same, no?

What you get from the Client Message Inspector is the raw XML data (the raw format of the SOAP message) as it travels across the copper wire (or fibre). What Fiddler gives you is a higher-level HTTP-oriented interpretation of that same XML message, I would say.

Judging from other blog posts and articles I've found on Fiddler and SOAP (e.g. this blog post - check out the "Sample Capture" section towards the end), it almost seems to me as if Fiddler will strip out the SOAP headers and interpret / show them in a custom format, leaving just the SOAP body to be shown as body of the message being displayed.

Is there an actual technical problem? Or just a question of how to interpret the two formats?

marc_s
They are probably equivalent. It's not really a technical problem, but it is a little confusing that my message inspector is telling me one thing, but the actual message going out is different. Also, the service provider also verified that Fiddler was right and my message inspector was not giving me the real outgoing request.I was hoping somebody could explain why this behavior is occuring.
WayneC