请问以下代码有啥问题:该代码为日志处理代码,如存在(c:\\udslog.txt)文件,则写入信息,如不存在则创建文件。但运行程序后,系统报错说:『对路径“c:\udslog.txt”的访问被拒绝。』不知道咋整啊? public class Error { private const string FILE_NAME = "c:\\udslog.txt"; public static void Log(string message) {
if(File.Exists(FILE_NAME))
{
StreamWriter sr = File.AppendText(FILE_NAME);
sr.WriteLine ("\n");
sr.WriteLine (DateTime.Now.ToString()+message);
sr.Close();
}
else
{
                StreamWriter sr = File.CreateText(FILE_NAME);
sr.Close();
}


}
}

解决方案 »

  1.   

    『对路径“c:\udslog.txt”的访问被拒绝。』 没有文件操作的权限。
      

  2.   

    你在c:\udslog.txt 对应的路径的文件夹 设置访问权限   属性---安全 ---添加---高级--立即查找 ---(选中aspnet)
      

  3.   

    首先, 运行IIS的账户不一定是ASPNET, 我是Windows2003, IIS的帐号默认是Network Service 其次, 强烈建议你设置一个目录的权限, 给IIS的帐号, 而不是文件的权限. 
    测试时最简单的方法:
    把ASPNET, Network Service, 乱七八糟的帐号统统加到Administrators组里去, 世界安静了...
      

  4.   


    谢谢支持,我已经将c:\udslog.txt文件的安全列表加入EVERYONE,有控制权限,而且把ASPNET, Network Service等几个帐号加入到Administrators组了,但问题依旧啊。另外,我想将该文件放到我的udslog目录底下,但我把 private const string FILE_NAME = "c:\\udslog.txt"; 改成 private const string FILE_NAME = "c:\udslog\udslog.txt";后,系统在测试的时候侦测到FILE_NAME的值依然是 c:\udslog.txt,不知道是何原因?
      

  5.   


    請用Aadministrator帳號登入系統看看
      

  6.   

    好像只是CLOSE还不行。! 你DISPOSE一下你的STREAM。 应该是被其它地方占用了
      

  7.   

    我敢保证, 楼主这段代码, 编译都有问题...if else里声明了两个相同名字的变量, 怎么可能编译通过呢?
      

  8.   


    我搜索整个项目,没有找到对filename赋值的地方了