当使用Directory.GetFiles(…)时,我得到异常“拒绝访问路径”

本文关键字:异常 路径 拒绝访问 Directory GetFiles | 更新日期: 2023-09-27 18:11:40

当我在控制台应用程序项目中运行这段代码时,它工作得很好,但是当我在webpart中运行它时,它抛出一个异常"访问路径被拒绝"。我想用匿名用户从我的sharepoint站点访问目录信息。

I give full access (Read/Write)"wwwroot"文件夹为"Everyone","ANONYMOUS login","IIS_IUSRS"

string VideosPath = @"''10.2.10.2'inetpub'wwwroot'Videos";
string[] fileDirectories= 
  System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);

谢谢大家,我用委托解决问题

     SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(SPContext.Current.Site.Url))
                    {
                        using (SPWeb currentWeb = site.OpenWeb(SPContext.Current.Web.ID))
                        {
string[] fileDirectories= 
      System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);
                         }
                    }
                }
              );

当使用Directory.GetFiles(…)时,我得到异常“拒绝访问路径”

您的@"''10.2.10.2'...路径将指向当前驱动器的根目录,这不应该。

你需要:

string VideosPath = Server.MapPath("~/10.2.10.2/..."); 
...

其中~/是您的应用程序的根,而/将是'site'的根

web服务器的匿名帐户不是远程机器上的匿名帐户。

要使其工作,在两台机器上创建具有相同名称和密码的新帐户,然后在该帐户下运行网站的应用程序池。也许"只"使用这个帐户运行IIS就足够了,所以先试试吧。

这样,授予该帐户对文件夹及其所有父文件夹的权限。