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

Asp.net HostingEnvironment.VirtualPathProvider.FileExists在现有文件上返回false,asp.net,iis-7.5,virtualpathprovider,Asp.net,Iis 7.5,Virtualpathprovider,我正在尝试使用以下代码读取虚拟路径中的文件 HostingEnvironment.VirtualPathProvider.FileExists(_SiteMapFileName) \u SiteMapFileName有类似于“~/Content/en-US/main menu.sitemap”的内容,它总是返回false 但是,如果访问该虚拟路径()的URL,则该文件将在浏览器中正确显示 Content是我的网站下的一个虚拟目录,指向不同位置的共享文件夹。如果在Windows资源管理器上访问该

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

HostingEnvironment.VirtualPathProvider.FileExists(_SiteMapFileName)
\u SiteMapFileName
有类似于“~/Content/en-US/main menu.sitemap”的内容,它总是返回
false

但是,如果访问该虚拟路径()的URL,则该文件将在浏览器中正确显示

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

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

我使用process monitor工具查看是否存在任何问题,它说w3wp.exe正在尝试创建文件\path\to\shared\location\Content\en-US\MainMenu.sitemap,但它被拒绝访问,这很好,因为它是只读位置


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

当我使用vDir时,我使用Server.MapPath 这对你不管用吗

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

使用vDir时,我使用Server.MapPath 这对你不管用吗

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

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

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

我通常使用Server.MapPath获取物理路径。。在这种情况下,我确实想测试虚拟路径,看看文件是否存在。我通常使用Server.MapPath获取物理路径。。在本例中,我确实希望测试虚拟路径,以查看文件是否存在