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

发布于 2024-09-06 18:31:05 字数 136 浏览 6 评论 0原文

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

到目前为止我唯一能做的就是过滤异常。还有其他人知道如何做到这一点吗?我真的很想避免用永远不会改变的设置弄乱我的配置文件。

I'd like to configure ELMAH for an ASP.NET MVC site entirely in code. This includes registering the module, setting the logging provider and settings, and filtering exceptions.

The only part I've managed to do so far is filter exceptions. Has anyone else figured out how to do this? I'd really like to avoid cluttering up my config file with settings that won't ever change.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

五里雾 2024-09-13 18:31:05

指向 Google 代码中原始错误/功能的链接。

链接到 Google 群组讨论,其中提供了用于实现服务容器的基本示例代码。

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; 
  } 
} 

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; 
  } 
} 
玩套路吗 2024-09-13 18:31:05

ELMAH 作为自定义 HTTP 模块和 HTTP 处理程序运行。根据MSDN

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

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

Rick Strahl 有一篇博客文章,其中他以编程方式注册了 HttpModule。我认为 ELMAH 可以使用类似的技术。

ELMAH runs as a custom HTTP module and HTTP handler. According to MSDN:

After you have created a custom HTTP
handler class, you must register it in
the Web.config file. This enables
ASP.NET to call the HTTP handler in
order to service requests for
resources that have the specified file
name extension.

How you register an HTTP handler
depends on the version of Internet
Information Services (IIS) that hosts
your application. For IIS 6.0, you
register the handler by using the
httpHandlers section of the Web.config
file. For IIS 7.0 running in Classic
mode, you register the handler in the
httpHandlers section, and you map the
handler to the Aspnet_isapi.dll file.
For IIS 7.0 running in Integrated
mode, you register the handler by
using the handlers element in the
system.WebServer section.

Rick Strahl has a blog post where he programmatically registers an HttpModule. I suppose it might be possible to use a similar technique with ELMAH.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文