当iis托管WCF服务时,Log4Net不会写入

时间:2010-09-09 11:56:31

标签: wcf iis hosting log4net

当iis托管WCF服务时,Log4Net不会写入。 当我使用自托管(Visual Studio开发服务器)时,它工作得很好, 但是当我使用IIS运行它时,它不会写任何东西。

我读到了这个问题,结论就是这样 它必须是一个权限问题,但我不知道如何解决它。

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

我是计算机的管理员。 我正在尝试在项目文件夹中创建该文件。 该文件是滚动文件追加器。

谢谢。

5 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

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

修改:Here is an article,以帮助您确定应用池的运行对象(如果需要)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

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

我不知道为什么它没有写入硬盘路径“c:”的权限,而是能够访问硬盘中的文件夹....

你知道吗?