1

我觉得我可能在 IIS 或全局文件中缺少一些配置?

我想加载一个 xml 文件:

var icon = XDocument.Load("/images/body/logos/LogoImageMappings.xml");

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

如何正确地将其定向到本地主机(或发布时的 Web 服务器)应用程序驱动器而不是本地 c:?

谢谢你。

4

2 回答 2

7

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

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

Server.MapPath函数会将相对路径映射到服务器上文件的完整路径,将波浪号替换为正确的目录(注意相对路径必须指向您网站目录的子目录,出于安全原因,通常您可以'不要访问任何比这更高的东西)。

于 2012-05-28T21:48:19.880 回答
5

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

var icon = XDocument.Load(HttpContext.Current.Server.MapPath("~/images/body/logos/LogoImageMappings.xml"));
于 2012-05-28T21:48:39.207 回答