YATT - a packet capture utility.
tcptrace - a tcp proxy. Captures raw tcp data.
These are great programs, but no source code is available and they are not customisable. They give you access to the raw data, but if you are sending xml as part of the soap envelope the messages quickly become unreadable.
Involves a whole load of java classes to be installed. This is one of the reasons the guy behind pocket soap wrote his utility programs.
A commercial soap trace utility. Not tried this. The guys behind this are ex-Numega so this is bound to be a good development tool. Has similar features to the SoapTrace.Net project, but it is not free or open source.
It looks as though .Net allows you to monitor soap messages from your own .Net application via message sinks. Not looked into this. Useful if you are only concerned with .Net code.
Provided free as part of the Soap SDK a few years ago. No longer supported. The main reason for the existence of the SoapTrace.Net project is because of the limitations of the otherwise excellent Microsoft's Soap Trace utility.
Limitations:
It occasionally crashes.
It uses Internet Explorer to display the resulting soap messages. Intermittently either IE or the soap trace application gets confused and refuses to display the soap message.
It cannot be customised. If for some reason you decide to send gzip/base 64 encoded data through the web service you cannot see what the actual data is.
No source code is provided.
The list view display of connections is not that useful if you are just interested in seeing soap messages sent from applications on your local machine. The list view displays the IP address of the connecting client application.
It does not handle "chunked" data.
The main reasons for looking into a new soap trace tool were items 3) and 6).
If you are using Web Service Enhancements 2.0 then these utilities can be used.
These two utilities are compared at Softwaremaker.net.
http://www.codeproject.com/cs/webservices/webserviceprobe.asp
The .Net framework provides a way to monitor Soap messages. If the client or the server is written in .Net then a soap extension can be used.
The SoapTrace.Net project includes a set of C# classes that wrap access to WinPcap.
On CodeProject there's two articles about a WinPCap wrappers for .Net, unfortunately both of these do not contain any source code, they only provide a .Net dll.
http://www.codeproject.com/csharp/pktcap.asp
http://www.codeproject.com/dotnet/dotnetwinpcap.asp
There is a .Net WinPcap packet analysis tool on CodeProject with source code. The code does not wrap WinPCap but instead goes more low level and "port[s] the base library of WinPCap named PacketNt.dll to C#". Whilst this looks good all of the data packet classes work with UI elements (e.g. the Parser method talks directly to ListView items) so there is no clean separation of UI from back end code.
http://www.codeproject.com/pacanal
On SourceForget there's a WinPcap two .Net project, but the first one, WinPcap Wrapper, was opened in 2002 and seems to have stalled, and the other, PcapSharp, was created in August 2004, but has not released any code.
http://sourceforge.net/projects/wincap/
http://sourceforge.net/projects/pcapsharp/
For these reasons the SoapTrace.Net includes its own set of .Net wrapper classes for WinPCap.