首页 > 解决方案 > 控制器提供目录浏览而不是返回文本

问题描述

我有以下操作方法:

public ActionResult Index(string filename)
    {

        string detailFolder = SSOSettingsFileManager.SSOSettingsFileReader.ReadString("bts.go.core", "SupportNotificationDetailPath");

        string pathFile = System.IO.Path.Combine(detailFolder, filename);

        XDocument xdoc = XDocument.Load(pathFile);
        XNamespace ns = "http://BTS.GO.Core.Schemas.SupportNotificationDetail";

        var notificationMsg = from x in xdoc.Descendants("NotificationMessage") select x.Value;
        var content = HttpUtility.HtmlDecode(notificationMsg.FirstOrDefault());
        IHtmlString htmlContent = new HtmlString(content);

        SupportNotificationDetailViewModel vm = new SupportNotificationDetailViewModel();
        vm.Content = htmlContent;

        return View(vm);
}

这在部署到我的开发机器时工作正常。视图调用操作并返回“NotificationMessage”元素的文本内容,它呈现在屏幕上,如下所示:

在此处输入图像描述

我的问题是,将同一个站点部署到我的测试服务器。当我单击执行操作的链接时,而不是显示文本,我得到一个包含在变量 detailFolder 中的文件夹内容的目录列表,如下所示:

在此处输入图像描述

我想这一定是由于 IIS 配置的不同。我尝试使用msdn 链接来解决这个问题,但没有运气。msdeploy 命令返回“当该文件已存在时无法创建文件。”。我觉得这很奇怪,因为我使用 web deploy 将网站部署到两台服务器。两台机器都在运行服务器 2012r2

坏服务器安装了以下 Windows 功能(应该是所有需要的?): 在此处输入图像描述

有任何想法吗?

标签: asp.net-mvciis

解决方案


推荐阅读