Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Soap logging in .net

I have an internal enterprise app that currently consumes 10 different web services. They're consumed via old style "Web References" instead of using WCF.

The problem I'm having is trying to work with the other teams in the company who are authoring the services I'm consuming. I found I needed to capture the exact SOAP messages that I'm sending and receiving. I did this by creating a new attribute that extends SoapExtensionAttribute. I then just add that attribute to the service method in the generated Reference.cs file. This works, but is painful for two reasons. First, it's a generated file so anything I do in there can be overwritten. Second, I have to remember to remove the attribute before checking in the file.

Is There a better way to capture the exact SOAP messages that I am sending and receiving?

like image 983
Rob Avatar asked Dec 31 '22 11:12

Rob


2 Answers

This seems to be a common question, as I just asked it and was told to look here.

You don't have to edit the generated Reference.cs. You can reference the extension in your application's app.config.

like image 135
David Chappelle Avatar answered Jan 07 '23 12:01

David Chappelle


Is this a webapp?

Place your SoapExtension code in a HTTPModule, and inject the SOAP envelope into the HTTPOutput stream.

That way, when in debug mode, I picture something like a collapsible div on the top of the page that lists all SOAP communication for that page.

like image 22
FlySwat Avatar answered Jan 07 '23 12:01

FlySwat