我正在尝试读取虚拟路径中的文件,使用以下代码
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到sharedlocationContenten-USMainMenu。sitemap,但它得到ACCESS DENIED这是好的,因为它是一个只读位置
现在有人知道如何解决这个问题吗?
我找到了原因。用户设置运行绑定到应用程序池的应用程序需要对正在尝试读取的文件有权限,而不仅仅是网站和虚拟目录。:/
当我使用vDir时,我使用服务器。MapPath这对你没用吗?
if(System.IO.File.Exists(Server.MapPath("Relative Path to vDir")))
{
//do something with the file
}