无法读取目录中的XML文件?

时间:2017-02-25 01:47:01

标签: c# xml visual-studio iis

我有一个MVC Web应用程序,我想读取一个XML文件,它会给我一个要显示的图像文件夹/文件列表。

我在使用Visual Studio 2015的Windows 10计算机上本地运行它。在我的控制器中,当我尝试执行以下代码来获取XML文件时,我立即收到错误"The Web server is configured to not list the contents of this directory."

public ActionResult Index()
{
    XElement xelement = XElement.Load("~\\Gallery\\Gallery.xml");
    IEnumerable<XElement> galleries = xelement.Elements();

    return View();
}

然后我做了一些研究,发现我应该将以下内容放在我的web.config文件中。当我这样做并转到View时,它会立即列出我目录中的文件夹。

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

我还关注了一些信息,我选择了IIS,选择了目录浏览,然后启用了#34;。这似乎没有任何影响。

关于我能做什么的任何想法?

错误消息 enter image description here

2 个答案:

答案 0 :(得分:2)

"~\\Gallery\\Gallery.xml"不被理解为XElement.Load预期的路径。

您可以使用HostingEnvironment.MapPath将ASP.NET应用程序路径映射到文件系统路径,因此:

XElement xelement = XElement.Load(HostingEnvironment.MapPath("~\\Gallery\\Gallery.xml"));

答案 1 :(得分:0)

如果其他人遇到同样的问题,我会发布此问题的答案。

问题最终是我有一个名为“Gallery”的控制器以及我网站上名为“Gallery”的文件夹。我的HTML ActionLink正在创建一个超链接而不是。将图像文件夹更改为GalleryImages后,一切正常。

请勿将控制器命名为站点中的文件夹名称。