ELMAH未在Docker容器中使用ASP.NET MVC记录到XML文件

问题描述

ELMAH在运行VS和IIS的我的网站上工作正常,但是在为该应用创建docker映像后, XML errorLog 不起作用-实际上没有创建XML文件。我的代码引发了异常,但是导航到http:// xyz / elmah时什么也看不到。

如果更改为在内存记录中使用,那仍然可以正常工作。

任何帮助或建议都非常有用。

Web.config文件如下:

    <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>
    
  <elmah>
    <security allowRemoteAccess="yes" />
    <errorLog type="Elmah.XmlFileErrorLog,Elmah" logPath="~/App_Data" />
  </elmah>

解决方法

我通过以下方式解决了该问题:

  • 为容器添加一个卷,例如C:\ Logs
  • 并更新配置文件以将xml错误日志放入卷文件夹C:\ Logs

在将文件写入〜/ App_Data时可能存在权限问题