好的,所以我相信我在这里做得很轻松。我已经编写了一个ASP.NET网页,它只是试图写入本地目录。

我正在使用以下代码:

System.IO.File.WriteAllLines("log.txt", messages);

我抛出以下异常。
Access to the path 'c:\windows\system32\inetsrv\log.txt' is denied.

我的ASP.NET应用程序位于以下目录中。
c:\inetpub\wwwroot\sites\mysite\

因此,当我不提供该目录本身时,为什么要尝试写入c:\windows\system32\inetsrv\目录,对此我感到困惑。

我尝试将代码更改为以下代码,但是它为我提供了相同的错误消息,但带有一个新目录。
System.IO.File.WriteAllLines("c:\\inetpub\\wwwroot\\sites\mysite\log.txt", messages);

编辑1

对此很难回答,因为每个人都真的帮助了我很多。我接受了tom_yes_tom的回答,因为他是第一个发表他的回答的人,这是我问题的上半部分。法比奥指出,我的问题的另一半与hbrock的解决方案有关。

最佳答案

创建文件夹“C:\inetpub\wwwroot\sites\mysite\App_Data”,然后将数据保存在那里。

System.IO.File.WriteAllLines(Server.MapPath("~/App_Data/log.txt"))

如果绝对必须将其保存到mysite目录,请注意将日志文件放在该目录并适当设置目录权限的安全影响。 IIS在其下运行的用户必须能够读写该目录。

完整的合格路径:System.Web.HttpContext.Current.Server

关于c# - 如何配置ASP.NET目录以允许写入日志文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12393494/

10-17 00:47