【问题标题】:Log4Net doesn't write when iis hosting WCF serviceiis 托管 WCF 服务时 Log4Net 不写入
【发布时间】:2010-09-09 11:56:31
【问题描述】:

当 ii 托管 WCF 服务时,Log4Net 不写入。 当我使用自托管(Visual Studio Development Server)时效果很好, 但是当我使用 IIS 运行它时,它不会写任何东西。

我读到了这个问题,结论是 应该是权限问题,但是不知道怎么解决。

如何检查我是否有权写入日志文件? 我在哪里可以更改权限?更改 AppPool 用户? 你能给我一些简单的步骤来检查我是否有权限问题吗?

我是我电脑的管理员。 我正在尝试在项目文件夹中创建文件。 该文件是一个滚动文件附加程序。

谢谢。

【问题讨论】:

    标签: wcf iis hosting log4net


    【解决方案1】:

    对于我的带有 HTTP 端点的 IIS 托管 WCF 服务,记录到 App_Data 已被证明是最简单的解决方案。

    <file value="App_Data\log.txt"/>
    

    【讨论】:

      【解决方案2】:

      您需要确保运行应用程序池的 AD 用户对您输出日志文件的目录具有创建/读取/修改权限。据我所知,默认情况下,您的应用程序池用户无法创建/修改文件。所以听起来你是在正确的轨道上。

      编辑:Here is an article 以帮助您确定您的应用程序池以谁的身份运行(如果需要)。

      【讨论】:

        【解决方案3】:

        我遇到了类似的情况,Enterprise Library 没有使用 ASP.NET 应用程序的 Logging Application 块写入文件。这是 EntLib 4.1,尝试 ACL 修改后的最终解决方案是分配应用程序池作为网络服务运行并开始文本记录,并不是说这是您的解决方案或最好的解决方案,但值得一试。

        【讨论】:

          【解决方案4】:

          根据我的经验,在 IIS 7+ 中,您必须确保应用程序池具有写入特定日志目录的权限。比如

          【讨论】:

            【解决方案5】:

            当我将日志的路径从“c:\Log.txt”硬盘移动到硬盘中的“c:\log\Log.txt”文件夹时,问题就解决了。

            【讨论】:

            • 如果您使用的是 WIndows 7,它不喜欢驱动器根目录中的任何文件。
            猜你喜欢
            • 2022-12-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多