【问题标题】:Access denied on Directory.CreateDirectory from ASP.Net application来自 ASP.Net 应用程序的 Directory.CreateDirectory 访问被拒绝
【发布时间】:2014-06-03 09:26:18
【问题描述】:

在我的网络应用程序中,我有一个按钮,可以根据日期创建一个文件夹,如下所示:

if (!Directory.Exists(SaveLocation + DateTime.Now.Year + @"\" + DateTime.Now.Month + " - " + DateTime.Now.ToString("MMM") + @"\" + DateTime.Now.Day + @"\" ))
    Directory.CreateDirectory(SaveLocation + DateTime.Now.Year + @"\" + DateTime.Now.Month + " - " + DateTime.Now.ToString("MMM") + @"\" + DateTime.Now.Day + @"\");

当我在 localhost 中运行此代码时,它工作正常。每当它在服务器上运行时,我都会收到错误消息:

Access to the path '\\server\share\savelocation\2014\06 - June\3\' is denied

我尝试过的事情:

  • 网站在 Windows 身份验证下运行
  • 将文件夹和共享读/写权限授予所有人
  • 尝试将 <identity impersonate="true" /> 添加到 Web.config
  • 将应用程序池的托管管道模式更改为经典

为什么应用程序不能访问这个目录?

【问题讨论】:

标签: c# asp.net iis access-denied create-directory


【解决方案1】:

在处理文件和文件夹时,您需要一个物理文件路径,而不是相对于根目录的路径。尝试这个: var content = Server.MapPath("~/Content/");

https://forums.asp.net/t/1807775.aspx?Create+e+New+Folder+Access+Denied+

【讨论】:

    【解决方案2】:

    好的,所以我禁用了对服务器的匿名身份验证,它现在可以工作了。我假设这是试图以权限不足的用户身份访问共享。我没有注意到这一点,因为它在将信息传递到 SQL 服务器时使用了正确的凭据,所以我假设凭据对于文件夹权限是正确的。但它现在仍然有效。

    【讨论】:

      【解决方案3】:

      删除尾部斜杠;在MSDN 上,示例没有它,IIRC 会产生问题。

      【讨论】:

        猜你喜欢
        • 2012-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-04
        • 1970-01-01
        • 1970-01-01
        • 2015-09-20
        • 2013-05-09
        相关资源
        最近更新 更多