views:

73

answers:

3

We get people complaining about slow loading on our website. It is at a local ISP with pretty good bandwidth. But lately I've been getting a lot of client disconnected errors.

I added ping into the error logging so that I can see what kind of response times people that generate the client disconnect errors have. Most of these are coming up with a timeout. I was thinking about spinning off a thread to do a traceRoute and email me the results to me.

Would the best way to do this most likely build that portion as a small standalone app? Is there a way to do it inside my asp.net app?

A: 

What you need is one of the numerous website monitoring services. Just google for "website monitoring service traceroute".

You'll get an e-mail notification when your site is down and there are some (such as http://www.websitepulse.com/services/website.monitoring.php) that also include a traceroute in the report.

One additional advantage of using one of these services is that your site is being monitored from different parts of the world, so if your ISP runs several redundant backbones most of them should still be covered.

Adrian Grigore
My site is actually being monitored right now. The site is up, it's connectivity with the particular end user (While others have succesfull visits) that I'm trying to trouble shoot.
Joel Barsotti
If your site can be reached from different points all around the world according to your monitoring service, then the problem seems to be with your end user, not with your site. Why not have your end user type "tracert mydomain.com" in a command window and let him send you the results?
Adrian Grigore
+1  A: 

Your getting ping timeouts? If that's the case, send a report to the ISP. This should really never happen and they'll probably have to fix it on their end. It could be something as simple as a flaky cable...

Boden
well my site is up, it's just the end users I'm trying to ping.I'm sure alot of them are behind firewalls that don't respond to ping, which is why I'm interested in doing a tracert.
Joel Barsotti
Ah, I see. You have a client application that is talking to your web server? Maybe you could revise the question a little because it's hard to figure out exactly what you're doing.
Boden
A: 

Im not sure if theres a native way of invoking a tracert in .net but you could always hit the cmd prompt:

Process process = new Process();
process.StartInfo.FileName = "tracert.exe";
process.StartInfo.Arguments = "who you are trying to tracert";
process.Start();

... I'm fairly certain that would work as long as the app had the ability to execute

Chance
Just make sure to put some type of throttle in place. I'm sure launching a few thousand of these wouldn't be great. Also TraceRoute / Ping will not always resolve. I block ICMP packets so pinging me wouldn't do much good.
JoshBerke