How can you get the "real" HttpContext within an ASP.NET MVC application?

user1228 picture user1228 · Sep 30, 2008 · Viewed 31.7k times · Source

Unfortunately, I need to do this. I'm using ELMAH for my error log. Before I route to my error.aspx view, I have to grab the default ELMAH error log so I can log the exception. You used to be able to use

Elmah.ErrorLog.Default

However, this is now marked as obsolete. The compiler directs me to use the method

Elmah.ErrorLog.GetDefault(HttpContext context)

MVC's context is of type HttpContextBase, which enables us to mock it (YAY!). How can we deal with MVC-unaware libraries that require the old style HttpContext?

Answer

SHODAN picture SHODAN · Sep 30, 2008

Try System.Web.HttpContext.Current. It should do the trick.

Gets HTTP-specific information about an individual HTTP request.

MSDN