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