HostingEnvironment.VirtualPathProvider.FileExists在现有文件上返回false

时间:2013-04-22 17:38:45

标签: asp.net iis-7.5 virtualpathprovider

我正在尝试使用以下代码

读取虚拟路径中的文件
HostingEnvironment.VirtualPathProvider.FileExists(_SiteMapFileName)

_SiteMapFileName的内容类似于“〜/ Content / en-US / MainMenu.sitemap”,它始终返回false

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

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

我已将网站和虚拟目录设置为我的网络帐户。

我使用了进程监控工具来查看是否有任何问题,并且说w3wp.exe正在尝试创建文件\ path \到\ shared \ location \ Content \ en-US \ MainMenu.sitemap但它正在获取 ACCESS DENIED ,因为它是一个只读位置,所以很好

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

当我使用vDir时,我使用Server.MapPath 这不适合你吗?

if(System.IO.File.Exists(Server.MapPath("Relative Path to vDir")))
{
    //do something with the file
}