- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Elmah 中启用错误日志过滤,并希望在 ErrorLog_Filtering 事件处理程序中以编程方式执行此操作。它在 Visual Studio 开发服务器下运行良好,但一旦我进入 IIS7(在我的开发计算机上本地或在我的 Web 服务器上远程),处理程序就不会被调用(错误日志记录运行良好)。
这是我常用的 web.config:
<configuration>
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
<section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ShopMvcConnectionString" />
</elmah>
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="Elmah.ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="Elmah.ErrorFilter" type="Elmah.ErrorFilterModule" preCondition="managedHandler" />
</modules>
<handlers>
<add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</configuration>
以及我在 Global.asax 中的处理程序:
public void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
}
最佳答案
您的处理程序在 IIS 7 下未被调用的原因是您对模块的命名不同。您将其命名为 system.web/httpModules
下的 ErrorLog
,然后将其命名为 system.webServer/modules
下的 Elmah.ErrorLog
。
Handling module events in Global.asax
通过命名约定进行工作,其中事件处理程序必须以配置中找到的模块名称命名,后跟下划线 (_
),后跟事件名称。 ErrorLog_Filtering
很好,并且与 system.web/httpModules
下的注册名称相匹配,并且 Visual Studio Development Server 正在拾取该名称。 。您只需确保匹配所有名称,它就可以在两种环境中工作。
关于asp.net - Elmah:在 IIS7 下未调用 ErrorLog_Filtering 事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636032/
我在 Elmah 中启用错误日志过滤,并希望在 ErrorLog_Filtering 事件处理程序中以编程方式执行此操作。它在 Visual Studio 开发服务器下运行良好,但一旦我进入 IIS7
我是一名优秀的程序员,十分优秀!