2012-11-06 28 views
0

我让Elmah与MVC 3一起正常工作,并开始为同一个项目设置ElmahR。指定的配置对我无效。我的配置如下。使用asp.net的ElmahR配置MVC

除了添加目标Url和源Url之外,我还没有更改默认值。所以不知道如何解决这个问题。维基(该项目的https://bitbucket.org/wasp/elmahr/wiki/Elmahr.config)表示该仪表板应该是一个单独的应用程序,这对我来说也不起作用)。我觉得我失去了一些实质性的东西,因为导航到posterrors.ashx似乎不是在mvc中做的正确的事情。

<?xml version="1.0" encoding="utf-8"?> 
<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="errorPost" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> 
    </sectionGroup> 
    <section name="elmahr" type="ElmahR.Core.Config.SectionHandler, ElmahR" /> 
    </configSections> 
    <elmahr> 
    <!-- Monitored applications list --> 
    <application name="Source Application" sourceId="http://localhost:3154/elmah"/> 
    </elmahr> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="1.0.0.0" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="elmah.mvc.disableHandler" value="false" /> 
    <add key="elmah.mvc.requiresAuthentication" value="false" /> 
    <add key="elmah.mvc.allowedRoles" value="*" /> 
    <add key="elmah.mvc.route" value="elmah" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 
    <membership> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
     </providers> 
    </membership> 
    <profile> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     </providers> 
    </profile> 
    <roleManager enabled="false"> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
     </providers> 
    </roleManager> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    <httpModules> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
     <add name="ErrorPost" type="ElmahR.Elmah.ErrorPostModule, ElmahR.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" /> 
     <add name="ErrorPost" type="ElmahR.Elmah.ErrorPostModule, ElmahR.Elmah" /> 
    </modules> 
    <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <elmah> 
    <errorLog type="Elmah.MemoryErrorLog, Elmah" /> 
    <errorPost targetUrl="http://localhost:3154/posterror" sourceId="http://localhost:3154/elmah" /> 
    </elmah> 
</configuration> 

回答

2

这很难说什么是错的,但基本上它是真实的,如果你试图建立一个新的MVC 3 web应用程序,并使其作为一个仪表板工作,则可能需要调整路由。一般而言我建议你从原始的仪表板源代码开始,这个简单的网站根本没有控制器,你可以直接使用from the source codedownloading the sample zipped application。当然可以从MVC新网站应用程序,但正如你所说,你需要一些调整,一个因为ElmahR仪表板并不需要控制器(场景后面的所有事情都是通过SignalR发生的),所以没有太大的必要。作为一个开源项目,您可以随心所欲地进行破解,但如果您不想这样做,我建议您从压缩应用程序中的示例仪表板开始,按照说明进行配置并对其进行个性化设置。

+0

我会再给它一次,一旦我指定它,将发布如何为MVC做到这一点..不应该太难.. –

+0

@ashutoshraina这将是很酷,如果你想出来有趣的东西请在某处发布并让我知道(我是ElmahR的人),这可能是对该项目的一个有趣的贡献。甚至可能是项目存储库上的拉取请求(https://bitbucket.org/wasp/elmahr); – Wasp