Log4Net不';当iis承载WCF服务时无法写入

Log4Net不';当iis承载WCF服务时无法写入,wcf,iis,hosting,log4net,Wcf,Iis,Hosting,Log4net,当iis承载WCF服务时,Log4Net不会写入。 当我使用自托管(VisualStudioDevelopmentServer)时,它工作得非常好, 但当我使用IIS运行它时,它不会写入任何内容 我读到这个问题,结论是 这一定是权限问题,但我不知道如何解决 如何检查我是否有写入日志文件的权限? 我在哪里可以更改权限?更改应用程序池用户? 你能给我一些简单的步骤来检查我是否有权限问题吗 我是我电脑的管理员。 我正在尝试在项目文件夹中创建文件。 该文件是一个滚动文件追加器 谢谢。您需要确保运行应用程

当iis承载WCF服务时,Log4Net不会写入。 当我使用自托管(VisualStudioDevelopmentServer)时,它工作得非常好, 但当我使用IIS运行它时,它不会写入任何内容

我读到这个问题,结论是 这一定是权限问题,但我不知道如何解决

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

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


谢谢。

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


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

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

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

对于使用HTTP端点的IIS托管WCF服务,登录到App_数据已被证明是最简单的解决方案

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


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

如果您使用的是WIndows 7,它不喜欢驱动器根目录上的任何文件。