当iis托管WCF服务时,Log4Net不会写入。 当我使用自托管(Visual Studio开发服务器)时,它工作得很好, 但是当我使用IIS运行它时,它不会写任何东西。
我读到了这个问题,结论就是这样 它必须是一个权限问题,但我不知道如何解决它。如何检查我是否有权写入日志文件? 我在哪里可以更改权限?改变AppPool用户? 你能给我一些简单的步骤来检查我是否有权限问题吗?
我是计算机的管理员。 我正在尝试在项目文件夹中创建该文件。 该文件是滚动文件追加器。
谢谢。答案 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+中,您必须确保应用程序池具有在特定日志目录中写入的权限。例如,
答案 4 :(得分:-1)
我不认识男人, 当我将日志的路径从“c:\ Log.txt”硬盘驱动器移动到硬盘驱动器中的“c:\ log \ Log.txt”文件夹时,问题就解决了。
我不知道为什么它没有写入硬盘路径“c:”的权限,而是能够访问硬盘中的文件夹....
你知道吗?