我正在开发一个asp.net网站。我想允许用户在网站内创建自己的文件夹。
string pathToCreate = "~/path/sub folder";
if (Directory.Exists(Server.MapPath(pathToCreate)))
{
// folder exist message
}
else
{ //cerate folder
Directory.CreateDirectory(Server.MapPath(pathToCreate));
base.OnLoad(e);
}
当我使用visual studio进行调试时,这工作正常。但是当我在IIS中托管它之后,它显示了拒绝访问先前指定路径的错误
Access to the path 'C:\inetpub\wwwroot\sample_site\resources\users_folder' is denied.
Line 47: Directory.CreateDirectory(Server.MapPath(pathToCreate));
答案 0 :(得分:2)
默认情况下,Web目录中的ASP.NET进程不允许写访问。
但是有一个例外。您可以写入App_Data
目录。只需在那里创建文件夹。
答案 1 :(得分:0)
它需要整条路径 - 例如"C:\inetpub\wwwroot\sample_site\resources\users_folder".
使用Server.MapPath("~/YourApplication/folder") + @"\folder"
获取文件夹的物理路径。
<强>全球化志愿服务青年:强>
答案 2 :(得分:0)
或者:
在服务器上创建一个新用户,授予该用户写入权限,并通过添加到web.config让网站模拟该用户:
&LT; identity impersonate =“true”userName =“username”password =“password”/&gt;
我总是发现2.在我们的环境中工作得更好。