NLog 文件目标只写入一条记录

NLog file target writes only one record

每当我的应用程序 运行 在我们托管服务提供商的基础设施上的测试、预生产或生产服务器(Windows 2012 R2)上运行时,所有文件目标都只写入一个日志条目,然后在不说明原因的情况下停止工作。如果我删除日志文件(或者如果它被归档,例如在第二天),一个新的日志文件被写入,但同样只有一个日志记录。

这里的 NLog 论坛上描述了同样的问题,但没有解决方法或解释:http://nlog-forum.1685105.n2.nabble.com/Only-one-entry-written-to-log-file-td7399596.html

我尝试了以下操作:

还有其他想法吗?我无法在这些服务器上 运行 Visual Studio,所以我无法使用 NLog 源对其进行调试。

因为一个愚蠢的错误而切换到 log4net 会很可惜。

编辑: 我必须补充一点,其他目标(如 DebugView 或 ADO.NET)工作正常,这确实是文件目标的问题。而且由于内部日志记录仅限于文件目标,我看不出如何找到问题的原因

似乎是权限问题。一旦我授予用户组 IIS_IUSRS 对日志文件夹的写入权限,一切都按预期工作。

我只是想知道,为什么它可以用一个条目写入日志文件?

我从来没有想过权限问题,因为我看到 IIS 可以写入日志文件。

编辑: 按照评论中的建议,我打开了 ${identity} 日志,并收到以下值:

前 3 行:

notauth::

以下所有行:

auth:ApplicationCookie:{LOGIN_OF_CURRENT_USER}

`{LOGIN_OF_CURRENT_USER} 是当前登录用户的电子邮件地址。

编辑 2: 这是 icacls 结果:

D:\IIS_Server\wwwroot\tgw\logs NT AUTHORITY\IUSR:(OI)(CI)(F)
                               BUILTIN\IIS_IUSRS:(OI)(CI)(F)
                               NT AUTHORITY\IUSR:(I)(OI)(CI)(RX)
                               BUILTIN\IIS_IUSRS:(I)(OI)(CI)(RX)
                               NT SERVICE\WMSVC:(I)(OI)(CI)(F)
                               NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
                               BUILTIN\Administrators:(I)(OI)(CI)(F)
                               BUILTIN\Users:(I)(CI)(AD)
                               BUILTIN\Users:(I)(CI)(WD)
                               BUILTIN\Users:(I)(OI)(CI)(RX)

请注意,这是 我明确授予 IIS_IUSRS 文件夹写入权限后。