What's the best tool that you use to monitor Web Service, SOAP, WCF, etc. traffic that's coming and going on the wire? I have seen some tools that made with Java but they seem to be a little crappy. What I want is a tool that sits in the middle as a proxy and does port redirection (which should have configurable listen/redirect ports). Are there any tools work on Windows to do this?
For Windows HTTP, you can't beat Fiddler. You can use it as a reverse proxy for port-forwarding on a web server. It doesn't necessarily need IE, either. It can use other clients.
Wireshark does not do port redirection, but sniffs and interprets a lot of protocols.
Wireshark (or Tshark) is probably the defacto standard traffic inspection tool. It is unobtrusive and works without fiddling with port redirecting and proxying. It is very generic, though, as does not (AFAIK) provide any tooling specifically to monitor web service traffic - it's all tcp/ip and http.
You have probably already looked at tcpmon but I don't know of any other tool that does the sit-in-between thing.
JMeter's built-in proxy may be used to record all HTTP request/response information.
Firefox "Live HTTP headers" plugin may be used to see what is happening on the browser side when sending/receiving request.
Firefox "Tamper data" plugin may be useful when you need to intercept and modify request.
You might find Microsoft Network Monitor helpful if you're on Windows.
+1 to Fiddler. Once you get it installed, you can point it a certificate for decrypting encrypted comms too. This has recently proved itself worthwhile on a project I'm working on where we interact with a 3rd party supplier over https.
I've been using Charles for the last couple of years. Very pleased with it.
I tried Fiddler with its reverse proxy ability which is mentioned by @marxidad and it seems to be working fine, since Fiddler is a familiar UI for me and has the ability to show request/responses in various formats (i.e. Raw, XML, Hex), I accept it as an answer to this question. One thing though. I use WCF and I got the following exception with reverse proxy thing:
The message with To 'http://localhost:8000/path/to/service' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree
I have figured out (thanks Google, erm.. I mean Live Search :p) that this is because my endpoint addresses on server and client differs by port number. If you get the same exception consult to the following MSDN forum message:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2302537&SiteID=1
which recommends to use clientVia Endpoint Behavior explained in following MSDN article:
I second Wireshark. It is very powerful and versatile. And since this tool will work not only on Windows but also on Linux or Mac OSX, investing your time to learn it (quite easy actually) makes sense. Whatever the platform or the language you use, it makes sense.
Regards,
Richard Just Programmer http://sili.co.nz/blog
What about Mac,you can try to use ProteMac Meter.It’s prog record of your network and display your internet traffic.It’s must be helpful to your.It’s really good prog.
Do NOT do this by adding a proxy. Really that's a very stupid way to make your site unreliable.
Most web traffic analysis programs are designed to process log files off line - but you can get most of them to work using a live datafeed. I assume when you say "Windows" you mean Microsoft Windows - in which case you'll be severely limited in your choice of tools.
You could try Compuware's Client Vantage Agentless - expect to pay a 6 figure amount for an installation.
If you can get over your requirement to use Microsoft operating systems, then you might find PasTMon and MRTG may meet many of your requirements.
C.