【问题标题】:Loading an XML file in MVC ASP.NET from a server instead of the local drive path从服务器而不是本地驱动器路径加载 MVC ASP.NET 中的 XML 文件
【发布时间】:2012-05-28 21:40:19
【问题描述】:

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

我要加载一个xml文件:

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

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

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

谢谢。

【问题讨论】:

    标签: c# asp.net .net relative-path


    【解决方案1】:

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

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

    Server.MapPath 函数会将相对路径映射到服务器上文件的完整路径,将波浪号替换为正确的目录(注意相对路径必须指向您网站目录的子目录,出于安全原因,通常您无法访问高于此值的任何内容。

    【讨论】:

    • 感谢您的回复。不幸的是,它没有用。我在 OP 中添加了屏幕截图。
    • @Shenaniganz 有用吗?我在问题中没有看到任何屏幕截图!
    • 啊,是的,它终于奏效了。挣扎了一会儿后,我注意到我的路径中有一个小错字。您和 Anotonio 的解决方案都有效。我接受了你的额外解释,我觉得这很有用,希望其他人也会。谢谢。
    【解决方案2】:

    你有虚拟路径,获取物理路径使用 MapPath :

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

    【讨论】:

    • 谢谢。不幸的是,它没有用。我在上面添加了截图(如果太小看不到请告诉我)
    • 你能发布你如何设置 imageIconDirectory 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多