2013-04-26 66 views
1

我正在开发一个asp.net网站。我想让用户在网站内部创建自己的文件夹。允许用户在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)); 

回答

2

默认情况下,写不允许访问的web目录内ASP.NET进程。

但是有一个例外。您可以写入App_Data目录。只需在那里创建文件夹。

0

它需要整个路径 - 像"C:\inetpub\wwwroot\sample_site\resources\users_folder".

使用Server.MapPath("~/YourApplication/folder") + @"\folder"获得该文件夹的物理路径。

全球化志愿服务青年:

http://forums.asp.net/t/1622617.aspx/1

+0

“C:\ inetpub \ wwwroot \ sample_site \ resources \ users_folder”是不是完整路径? – leppie 2013-04-26 05:24:31

+0

这是完整的路径,但我认为他没有把它包含在代码中。 – Freelancer 2013-04-26 05:27:59

+0

但OP显示他正在使用'Server.MapPath' !!!! – leppie 2013-04-26 05:35:27

0

或者:

  1. 写权限授予该文件夹为IIS下运行的用户。
  2. 在服务器上创建一个新用户,给该用户的写权限,并获得该网站通过向web.config中冒充该用户:

    <身份冒充=“真”的userName =“用户名”密码=“密码”/>

我一直发现2.在我们的环境中工作得更好。

相关问题