Asp MVC IIS用户权限

时间:2015-06-11 14:15:25

标签: asp.net asp.net-mvc iis

我在我的应用程序中使用此代码来显示存储在网络驱动器上的一些图像,例如使用路径// MyCompanyServer / Folder

public ActionResult DocumentoLista(string area)
{
    if (String.IsNullOrEmpty(area))            
    {
        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }

    var doc = db.Documentos.Where(x => x.area == area).FirstOrDefault();

    if (doc == null)
    {
        return HttpNotFound();
    }
    string dirPath = Path.GetFullPath(doc.path);

    List<string> dirs = new List<string>(Directory.EnumerateDirectories(dirPath));

    List<string> files = new List<string>();
    DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
    foreach (string fInfo in Directory.EnumerateFiles(dirPath, "*.*", SearchOption.TopDirectoryOnly)
                    .Where(s => s.EndsWith(".png")
                        || s.EndsWith(".PNG")
                        || s.EndsWith(".jpg")  
                        || s.EndsWith(".JPG")
                     ).Select(Path.GetFileName)
             )
    {
        files.Add(fInfo);
    }
    ViewBag.Area = area;
    ViewBag.Dirs = dirs;
    ViewBag.MyList = files;
    return View(doc);
}

它在我的开发机器上完美运行,但是当我从部署服务器上尝试它时,它无效。我认为这可能不起作用,因为在我的开发计算机中我使用我的LDAP用户执行它,并且在我的生产服务器(IIS)中,用户是不同的,并且它没有访问此路径的权限。 ¿可能吗?

Witch用户执行asp应用程序?我需要为用户提供哪些权限才能使其正常工作?

由于

2 个答案:

答案 0 :(得分:1)

非常确定您的应用程序池运行的用户没有该路径的权限,您需要:

  1. 在IIS中找到您的应用程序池
  2. 检查正在运行的用户帐户(在基本设置中)
  3. 授予该用户访问您尝试访问的路径的权限(使用Windows安全性)。

答案 1 :(得分:0)