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

Tor*_*ory 2 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();
Run Code Online (Sandbox Code Playgroud)

Sve*_*ang 7

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

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


SLa*_*aks 6

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