Elmah正确地将错误记录到我的数据库,但我无法访问/ elmah。我错过了什么?这是在没有为Elmah实现控制器的情况下工作,但现在它无法正常工作。这是一个git合并。所有配置都已重置为以前的工作方式。
<system.web>
<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" />
</sectionGroup>
<appSettings>
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.allowedUsers" value="admin" />
<add key="elmah.mvc.route" value="elmah" />
</appSettings>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="[MyCSName]" />
</elmah>
</system.webServer>
答案 0 :(得分:1)
我意识到这是一个老问题,但它是google搜索结果的最佳结果。
如果要继续使用Funq,另一个选项是将要扫描的其他程序集传递给funq。 变化
new ServiceStack.Mvc.FunqControllerFactory(container);
要
new FunqControllerFactory(container, typeof(ElmahLogger).GetAssembly(), typeof(ElmahController).GetAssembly())
答案 1 :(得分:1)
我也在使用ServiceStack,这对我有用:
ControllerBuilder.Current.SetControllerFactory(new FunqControllerFactory(container,
typeof (ElmahController).Assembly));
答案 2 :(得分:0)
这很可能是因为您使用的是ServiceStack Funq IOC。
在App_Start\AppHost.cs
(姓名可能不尽相同)中,请尝试注释掉这一行:
//Set MVC to use the same Funq IOC as ServiceStack
//ControllerBuilder.Current.SetControllerFactory(new ServiceStack.Mvc.FunqControllerFactory(container));
问候。