从Web API访问虚拟目录

时间:2014-10-12 23:17:41

标签: asp.net-mvc iis asp.net-web-api

我有一个文件夹(表单模板),需要从.NET Web API应用程序和单独的.NET MVC应用程序访问。这些表单模板的文件夹位于网站之外。理想情况下,我希望能够将路径存储在Web.Config文件中,以便可以在本地环境中轻松测试应用程序。

我尝试在托管网站上设置虚拟目录,但无法弄清楚如何在Web API中引用它们。我尝试了几种引用虚拟目录的方法。大多数帖子建议尝试Server.MapPath(“MyVirtualDirectory”)但返回“.... \ wwwroot \ MyApiController \ Action \ MyVirtualDirectory”,而不是虚拟目录的物理路径。

我删除了虚拟目录并尝试“导航”到正确的路径,但被“无法使用前导..退出顶层目录”阻止。

那么在.NET Web API应用程序中使用虚拟目录访问资源的正确方法是什么?同样的方法是否适用于.NET MVC应用程序?

1 个答案:

答案 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";
相关问题