This project is read-only.



elmah_architecture overview.png

Below we will go into detail about the different servers and services you can see here.
Everything in the overview picture can be on one server or on different servers. That choice is entirely yours to make.

Web server(s)

  1. Unhandled and handled exceptions are caught by the ELMAH HttpModule.
  2. The ELMAH HttpModule wraps the exception into an Xml format, assigns a unique guid to the exception and saves the xml file in a local folder.
  3. The ELMAH HttpModule redirects the user to a friendly custom error page with the unique guid info. That way the end user can contact the support team with the correct reference.
  4. The Agent (which is a windows service) watches the folder with the xml formatted exceptions and saves the errors to the database through the ELMAH web service.

The ELMAH HttpModule can be plugged into any (existing) application without change of code. The only thing that has to be done is change the application/website configuration file. This will work for SharePoint websites, CRM websites, good ol’ ASP.NET websites ...

Elmah web server


1. The web service will save the errors in the database through the Intelligent Error Filter. This filter will scan the exception and add extra information:
  • Error Level: value from 0 to 5, where 5 means important and 0 means ignore
  • Error Type: infrastructure or code, where infrastructure means an SQL performance/availability/memory usage/... related problem and code means it should be fixed by a developer.
2. The web interface is a IIS site that connects with the database and allows searching, viewing and analyzing of errors, applications and agents. The web interface can be hosted on any server that has access to the database.

Database (sql server 2005)


The database should be accessible through OLEDB from the ELMAH web service (todo add ref), the web interface and the scheduled task from the notification service (todo add ref).

ELMAH notification server


The ELMAH notification server, which again can run on any of the other servers, is a scheduled task that will look for specific occurrences of exceptions and send an email if necessary. More info can be found in the section that handles the Mail Notifier.

Last edited Nov 2, 2009 at 4:28 PM by wdeconinck, version 6


No comments yet.