首页 > 解决方案 > 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>

标签: dockerelmahelmah.mvc

解决方案


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

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

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


推荐阅读