某人(不是我(开发了一个在C#中实现的Web服务的网站。当我在Visual Studio中运行网站时,该项目将自动启动Web服务。在Web服务中,我想将一些信息记录到文件中进行测试。Log4net用于Web服务项目中,但没有记录。我会承认,我不会花太多时间处理log4net,但是web.config hsa值看起来应该产生文件,而且不会产生文件。
所以,我试图将感兴趣的文本转移到本地驱动器上的文本文件中。
File.AppendAllText(logPath, txt + "n");
没有错误,也没有发送任何错误。
我启动了网站,而不是Web服务,因此调试器似乎对Web服务不了解(因此我不能简单地在Web服务中设置一个断点(。
我的期望是出于安全原因,事情就以一种简单地禁止的方式开始了。我隐约记得,当以这种方式启动时,您的服务也不允许写入磁盘,因此在从Visual Studio跑步时,在开发箱中,我该如何为磁盘编写一个简单的文件。
在我看来,这应该很简单。
首先,您应该调用Web服务,以记录任何内容。您可以使用Fiddler或Postman之类的外部程序,或编写单元测试。第一次通话后,您可以将视觉工作室附加到w3wp.exe,因此您可以调试问题。
应将AppPool的用户授予日志文件的写入权限。
我想在上述答案上发表评论,但我没有权利。
要将该用户设置为具有写入权限,对于本地开发环境,右键单击日志文件夹,选择属性,在"安全性"选项卡下,单击"编辑",用读取,写入,修改权限添加"每个人"。
在生产环境中,您应该选择真正的AppPool用户。
尽管答案很有用,而且正确,但这不是解决问题的原因。另外,相关,请参阅以下内容:
log4net在IIS7上部署时不会创建日志文件
请记住,我选择启动该网站,并自动启动Web服务。这个问题尚未解决,但是,一个同事烧毁了一些脑细胞,他认为这与视觉工作室如何神奇地启动Web服务有关,并且该Log4net未经初始化。如果我单独启动Web服务,则日志记录可以按配置工作。我仍在测试以查看上述建议是否允许写很多特定目录。