首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elmah.MVC不在生产环境中记录错误

Elmah.MVC不在生产环境中记录错误
EN

Stack Overflow用户
提问于 2012-07-27 14:04:19
回答 2查看 3.9K关注 0票数 2

我使用Elmah.MVC Nuget package在我的MVC项目中安装了Elmah.MVC。它在开发环境中运行良好,但当我上传网站到托管服务器(IIS7)时,它不会记录错误。

这是我的web配置文件(仅Elmah配置文件),

代码语言:javascript
运行
复制
<?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" />
        </sectionGroup>
    </configSections>
    <connectionStrings>
    ...
    </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="*" />
    </appSettings>

    <system.web>
        <customErrors mode="Off">
        </customErrors>
        ...
        <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>
        <validation validateIntegratedModeConfiguration="false" />
        <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>
        ...
    </system.webServer>
    ...
    <elmah>
        <security allowRemoteAccess="yes" />
        <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />
    </elmah>
    <location path="elmah.axd" inheritInChildApplications="false">
        <system.web>
            <httpHandlers>
                <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
            </httpHandlers>

        </system.web>
        <system.webServer>
            <handlers>
                <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
            </handlers>
        </system.webServer>
    </location>
</configuration>

有没有人可以检查一下为什么在托管环境中没有记录错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-27 14:17:26

您的应用程序是否对生产环境中的App_Data目录具有写访问权限?

根据您的配置,您没有登录到SQL ->应用程序池标识将需要能够修改/写入文件,以便附加到App_Data/Elmah.Errors文件。More information on the why and how.

票数 6
EN

Stack Overflow用户

发布于 2015-03-02 05:48:50

我也遇到过类似的问题。我用的是这句话:

代码语言:javascript
运行
复制
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~\App_Data\Elmah.Errors" />

不对。您必须使用斜杠:

代码语言:javascript
运行
复制
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />

这应该是一个评论,但我没有足够的代表。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11682295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档