是否可以完全在代码中配置ELMAH?

时间:2010-06-22 16:16:02

标签: asp.net asp.net-mvc elmah

我想完全用代码为ASP.NET MVC站点配置ELMAH。这包括注册模块,设置日志记录提供程序和设置以及过滤异常。

到目前为止,我设法做的唯一部分是过滤器异常。有没有其他人想出如何做到这一点?我真的希望避免使用不会改变的设置来混乱我的配置文件。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

Link to the original bug/feature in google code.

Link to a google groups discussion giving basic sample code for implementing the service container.

static ServiceProviderQueryHandler 
CreateServiceProviderQueryHandler(IServiceProvider sp) { 
  return context => { 
    var container = new ServiceContainer(sp); 
    var log = new SqlErrorLog("…connection string…"); 
    container.AddService(typeof(ErrorLog), log); 
    return container; 
  } 
} 

答案 2 :(得分:0)

ELMAH作为自定义HTTP模块和HTTP处理程序运行。根据{{​​3}}:

  

创建自定义HTTP后   处理程序类,您必须在其中注册   Web.config文件。这使得   ASP.NET在中调用HTTP处理程序   为了服务请求   具有指定文件的资源   名称扩展名。

     

如何注册HTTP处理程序   取决于互联网的版本   托管的信息服务(IIS)   你的申请。对于IIS 6.0,您   使用。注册处理程序   Web.config的httpHandlers部分   文件。对于在Classic中运行的IIS 7.0   模式,你在中注册处理程序   httpHandlers部分,你映射了   Aspnet_isapi.dll文件的处理程序。   对于在Integrated中运行的IIS 7.0   模式,您通过注册处理程序   使用中的处理程序元素   system.WebServer部分。

MSDN他以编程方式注册HttpModule。我想有可能在ELMAH上使用类似的技术。