0

我正在尝试使用以下代码读取虚拟路径中的文件

HostingEnvironment.VirtualPathProvider.FileExists(_SiteMapFileName)

_SiteMapFileName有类似“~/Content/en-US/MainMenu.sitemap”的东西,它总是返回false

但是,如果我访问该虚拟路径的 URL(http://www.local.mysite.com/Content/en-US/MainMenu.sitemap),该文件会在浏览器中正确显示

Content是我网站下的虚拟目录,指向不同位置的共享文件夹。如果我在 Windows 资源管理器上访问该位置,我可以正确查看文件

我已将站点和虚拟目录设置为我的网络帐户进行连接。

我使用进程监视器工具查看是否有任何问题,它说 w3wp.exe 正在尝试创建文件 \path\to\shared\location\Content\en-US\MainMenu.sitemap 但它正在获得ACCESS DENIED哪个很好,因为它是只读位置

现在有人如何解决这个问题吗?

4

2 回答 2

2

我找到了原因。设置为运行与应用程序绑定的应用程序池的用户需要对试图读取的文件具有权限,而不仅仅是网站和虚拟目录。:/

于 2013-04-23T02:13:19.220 回答
1

当我使用 vDir 时,我使用 Server.MapPath 这对你不起作用吗?

if(System.IO.File.Exists(Server.MapPath("Relative Path to vDir")))
{
    //do something with the file
}
于 2013-04-22T19:20:16.413 回答