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

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

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

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

if(!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } StreamWriter SW = new StreamWriter(fullpath, false, Encoding.Unicode); SW.WriteLine(/*stuff*/); SW.Close(); 

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

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

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

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