我有一个文件夹(表单模板),需要从.NET Web API应用程序和单独的.NET MVC应用程序访问。这些表单模板的文件夹位于网站之外。理想情况下,我希望能够将路径存储在Web.Config文件中,以便可以在本地环境中轻松测试应用程序。
我尝试在托管网站上设置虚拟目录,但无法弄清楚如何在Web API中引用它们。我尝试了几种引用虚拟目录的方法。大多数帖子建议尝试Server.MapPath(“MyVirtualDirectory”)但返回“.... \ wwwroot \ MyApiController \ Action \ MyVirtualDirectory”,而不是虚拟目录的物理路径。
我删除了虚拟目录并尝试“导航”到正确的路径,但被“无法使用前导..退出顶层目录”阻止。
那么在.NET Web API应用程序中使用虚拟目录访问资源的正确方法是什么?同样的方法是否适用于.NET MVC应用程序?
答案 0 :(得分:3)
您需要使用HostingEnvironment
,例如:
public static string MapPath(string path){
string result;
result = HostingEnvironment.MapPath(path);
return result;
}
此外,HostingEnvironment
提供了ApplicationPhysicalPath
:
result = HostingEnvironment.ApplicationPhysicalPath + "App_Data\\somefile.xml";