每当我的应用程序在我们的托管服务提供商的基础结构上的Test,Preprod或Prod服务器(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)工作正常,这确实是文件目标的问题。并且因为内部日志记录仅限于文件目标,所以我看不出如何找到问题的原因
答案 0 :(得分:0)
似乎是权限问题。一旦我授予用户组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
个写权限。