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

时间:2011-10-17 11:55:15

标签: c# sharepoint-2010

当我使用控制台应用程序项目运行此代码时,它运行良好,但是当我在webpart中运行它时会抛出异常“拒绝访问路径”。我想从我的sharepoint站点访问匿名用户的目录信息。

我为“Everyone”,“ANONYMOUS LOGON”,“IIS_IUSRS”提供完全访问权限(读/写)“wwwroot”文件夹

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);

                         }
                    }
                }
              );

2 个答案:

答案 0 :(得分:1)

您的@"\\10.2.10.2\...路径将引用当前驱动器的根目录,这不应该是。

你需要:

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

其中~/是您应用的根,只有/才是“网站”的根

答案 1 :(得分:1)

Web服务器的匿名帐户不是远程计算机上的匿名帐户。

要使其工作,请在具有相同名称和密码的两台计算机上创建新帐户,然后在此帐户下运行网站的应用程序池。也许“仅”使用此帐户运行IIS就足够了,所以先试试吧。

使用此功能,授予该文件夹及其所有父文件夹的帐户权限。