允许用户在asp.net网站内创建文件夹

时间:2013-04-26 05:15:13

标签: c# asp.net iis

我正在开发一个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));

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

它需要整条路径 - 例如"C:\inetpub\wwwroot\sample_site\resources\users_folder".

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

<强>全球化志愿服务青年:

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

答案 2 :(得分:0)

或者:

  1. 为运行IIS的用户授予此文件夹的写入权限。
  2. 在服务器上创建一个新用户,授予该用户写入权限,并通过添加到web.config让网站模拟该用户:

    &LT; identity impersonate =“true”userName =“username”password =“password”/&gt;

  3. 我总是发现2.在我们的环境中工作得更好。