views:

44

answers:

3

I have several servers to test new code on. I primarily push out asp.NET web applications. Last week, I had an issue where I installed a newly developed web application on three servers. The three servers all run in separate environments. The application worked fine on two of them, but consistently crashed on the third server with each web request. The problem was eventually traced to an in-house developed .dll file being out of date on the third server.

I'm certain that this kind of thing happens all the time. However, there are numerous things that could go wrong to cause this kind of behavior.

I spent quite a bit of time tracing this problem. I would like to make a list of things to be suspicious of next time this happens?

What are the most likely reasons that a web application would crash on one of my servers while identical code runs fine on another server.

A: 

You can start off with a Beyond Compare directory comparison between working and non-working servers. That can tell you what, if anything, is different in deployed files. That would have found this particular problem very quickly.

http://www.scootersoftware.com/

Sam
In the particular case I described, I don't think this would help because the .dll that was out of date was in the global assembly cache, not in in the web deployment folder.However, this would probably help with some other common problems.
Rice Flour Cookies
A: 

ELMAH is a good way to keep a pulse on the errors on production applications

http://code.google.com/p/elmah/

Especially if you run it at the server level so that all the errors are posted

ggonsalv
A: 

You could use Web Deploy to compare the site configuration, content, and if you define the right manifest it could even check for things in the Registry, GAC, COM objects, etc.

It will work for sites running in IIS 6 and IIS 7+ and it can even compare hybrid setups (ie IIS 6 vs IIS 7).

http://blogs.iis.net/msdeploy/archive/2008/02/02/using-ms-deploy-to-compare-sites-or-see-what-components-your-site-uses.aspx

Furthermore it can help you syncronize them as well in case anything is out of date with a single click (command line).

CarlosAg