无法以编程方式在C:\ inetpub \ wwwroot中创建文件

时间:2011-12-15 19:07:28

标签: c# asp.net permission-denied

我在ASP.NET网页的代码后面有一个函数,它创建一个文件然后用javascript命令打开它。这适用于IDE - 它创建文件,询问我要保存文件的位置,我可以保存它等等 - 但是当我安装网站并测试它时,我得到一个UnauthorizedAccessException而只是试图创建C:\ inetpub \ wwwroot。

中文件的目录

令人沮丧的是,我有一个类似于在服务中运行的函数,并且在C:\ inetpub \ wwwroot中创建了它的目录和文件。

我需要做些什么才能让它适用于网页?

 if(!Directory.Exists(directory))
 {
      Directory.CreateDirectory(directory);
 }

 StreamWriter SW = new StreamWriter(fullpath, false, Encoding.Unicode);

 SW.WriteLine(/*stuff*/);

 SW.Close();

3 个答案:

答案 0 :(得分:7)

您需要通过右键单击目录,转到安全选项卡,添加相应的用户并选中写入复选框来确保.NET用户具有写访问权。

根据您的.NET / Windows / IIS版本,这可能会有所不同,通常是Network ServiceIUSR。如果您运行的是IIS7,请确保在应用程序池的高级设置下检查身份,因为这将是需要写访问权限的用户,通常这也是网络服务。

答案 1 :(得分:6)

您需要授予ASP.Net用户对目录的写访问权。

答案 2 :(得分:-2)

只需使用管理权限打开文本编辑器(记事本或文本板或任何内容) 右键单击.exe文件,然后单击以管理员身份运行,您将能够立即执行