views:

4031

answers:

14

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?

+12  A: 

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.

Mark Cidade
by default fiddler does not listen to traffic directed for localhost - to use it in development use your machine name as the endpoint
Richard
Yeah, I use Fiddler a lot during web development but AFAIK it is working in tandem with IE. Is there any way to configure it so that I can use it in between my web service server and client?
huseyint
Fiddler is just a debugging proxy, if you configure your client to use to use 127.0.0.1:8888 as a proxy you will see all the traffic going through fiddler. You can also enable it for remote clients as well.
AnthonyWJones
for the Microsoft WebDev webserver you cant use the machine name becasue it doesn't listen for it. instead you can use http:// ipv4.fiddler:82913/products/1002 for your site and fiddler will see that
Simon_Weaver
+7  A: 

Wireshark does not do port redirection, but sniffs and interprets a lot of protocols.

Vinko Vrsalovic
Wireshark is good but it is a little low-level tool that watches ethernet-level traffic. What I want is a tool for dedicated web service use with an appropriate UI that can show pretty XML tree, etc.
huseyint
A: 

Check out Paros Proxy.

Steve M
+3  A: 

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.

Christian Vest Hansen
Yes, I have looked tcpmon and it's the best I have found so far but can be developed further IMO. Probably I will write my own tool :)
huseyint
A: 

I find WebScarab very powerfull

redsquare
A: 

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.

Vilmantas Baranauskas
+3  A: 

You might find Microsoft Network Monitor helpful if you're on Windows.

Michael Pliskin
A: 

I use LogParser to generate graphs and look for elements in IIS logs.

MikeJ
A: 

+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.

ZombieSheep
A: 

I've been using Charles for the last couple of years. Very pleased with it.

Christophe Herreman
+2  A: 

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:

http://msdn.microsoft.com/en-us/magazine/cc163412.aspx

huseyint
A: 

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

A: 

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.

Jack
A: 

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.

symcbean