从服务器而不是本地驱动器路径加载MVC ASP.NET中的XML文件

Ins*_*dBy 1 .net c# asp.net relative-path

我觉得我在IIS或Global文件中缺少一些配置?

我想加载一个xml文件:

var icon = XDocument.Load("/images/body/logos/LogoImageMappings.xml");
Run Code Online (Sandbox Code Playgroud)

运行时失败,因为它试图找到文件@ C:\ images\body\logos\LogoImageMappings.xml

我怎样才能正确地将它指向Localhost(或发布时的Web服务器)应用程序驱动而不是本地c:?

谢谢.

Adr*_*tti 7

您必须将路径映射到文件所在的目录.用这个:

string path = Server.MapPath("~/images/body/logos/LogoImageMappings.xml");
var icon = XDocument.Load(path);
Run Code Online (Sandbox Code Playgroud)

Server.MapPath函数将映射服务器上文件的完整路径的相对路径,将tilde替换为正确的目录(请注意,相对路径必须指向您的网站目录的子目录,出于安全考虑,通常您可以不能访问任何高于此的东西.


Ant*_*ula 5

您有虚拟路径,要获取物理路径,请使用 MapPath :

var icon = XDocument.Load(HttpContext.Current.Server.MapPath("~/images/body/logos/LogoImageMappings.xml"));
Run Code Online (Sandbox Code Playgroud)