C# 没有权限从带有log4net的.NET应用程序写入Windows Server 2008上的磁盘
我编写了一个简单的应用程序,它ping我的web服务以查看它是否启动,并使用log4net将事件记录到一个文件中 它在我的开发机器上运行良好,但当我将程序集放在其他Windows Server 2008机器上(这也不同于运行I ping服务的服务器)时,程序不会创建日志文件C# 没有权限从带有log4net的.NET应用程序写入Windows Server 2008上的磁盘,c#,.net,windows-server-2008,log4net,file-permissions,C#,.net,Windows Server 2008,Log4net,File Permissions,我编写了一个简单的应用程序,它ping我的web服务以查看它是否启动,并使用log4net将事件记录到一个文件中 它在我的开发机器上运行良好,但当我将程序集放在其他Windows Server 2008机器上(这也不同于运行I ping服务的服务器)时,程序不会创建日志文件 我从Administrators组中的帐户运行它,尝试将它放在服务器上的不同目录中,以“管理员”身份运行它,将文件夹的所有权限授予服务器上的所有用户组,但仍然没有日志文件 在事件日志中不获取任何错误消息和事件消息 以下是我的
我从Administrators组中的帐户运行它,尝试将它放在服务器上的不同目录中,以“管理员”身份运行它,将文件夹的所有权限授予服务器上的所有用户组,但仍然没有日志文件 在事件日志中不获取任何错误消息和事件消息 以下是我的log4net配置设置:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="MyServiceLog.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
</root>
您应该在下列文件夹中输入文件夹名称:
<file value="MyServiceLog.txt" />
将其更改为:
<file value="c:\dirIown\MyServiceLog.txt" />
然后确保在
c:\dirIown
上授予用户访问权限。是否检查了服务器上的日志以查看应用程序是否出现任何错误?是。我检查了应用程序和安全日志,没有错误,实际上也没有关于应用程序活动的条目。虽然我知道进程正在运行,但我看到了它的窗口。如果应用程序无法写入服务器,那么它应该抛出异常,这应该在应用程序的窗口中可见。可能log4net会吃掉异常。。。有没有办法让他把例外情况说出来?也许我会自己尝试file.write(),看看是否发生了什么事情……我只是放弃了,用System.IO.file.writealText(LOG_PATH,text)写入了文件——在任何地方都能正常工作。Log4net一定有问题。它在我的机器上也无法从编译器放入的目录以外的目录工作。尝试将它放入不同的目录。最后我用file.write()自己做了这件事。。