当使用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);
}
}
}
);
您的@"''10.2.10.2'...
路径将指向当前驱动器的根目录,这不应该。
你需要:
string VideosPath = Server.MapPath("~/10.2.10.2/...");
...
其中~/
是您的应用程序的根,而/
将是'site'的根
web服务器的匿名帐户不是远程机器上的匿名帐户。
要使其工作,在两台机器上创建具有相同名称和密码的新帐户,然后在该帐户下运行网站的应用程序池。也许"只"使用这个帐户运行IIS就足够了,所以先试试吧。
这样,授予该帐户对文件夹及其所有父文件夹的权限。