在目录上拒绝访问.从ASP创建目录.网络应用程序

本文关键字:ASP 创建目录 网络 应用程序 拒绝访问 | 更新日期: 2023-09-27 18:06:28

在我的web应用程序中,我有一个基于日期创建文件夹的按钮,如下:

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
  • 将App Pool的Managed Pipeline模式更改为Classic

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

在目录上拒绝访问.从ASP创建目录.网络应用程序

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

https://forums.asp.net/t/1807775.aspx?Create + e +新+文件夹+访问+否认+

asp.net unauthorizedaccessexception

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

去掉后面的斜杠;在MSDN上的示例没有它,而IIRC则会产生问题。