【问题标题】:Web API Help Pages not loading documentation XMLWeb API 帮助页面未加载文档 XML
【发布时间】:2016-09-24 07:57:39
【问题描述】:

我正在尝试将 ASP.NET Help Pages 设置为在现有 MVC 项目中运行,尽管指向同一解决方案中 Web API 项目的文档文件。约定在它记录的 Web API 中运行帮助页面,但在这种情况下,我希望它在同级 MVC 项目中。

Web API 项目将其文档 XML 文件输出到 MVC 项目内的文件夹中。

我已经在 MVC 项目中安装了Microsoft.AspNet.WebApi.HelpPage NuGet package。这将创建一个类\Areas\HelpPage\App_Start\HelpPageConfig.cs,并且在该类的Register 方法中,我已将XmlDocumentationProvider 传递给Web API 文档文件的路径。

但是当我加载页面时,除了标题和占位符描述之外,它是空的。

在调试HelpController.Index 方法时,我可以看到在返回的IApiExplorer_apiDescriptions 是空的。

但是,如果我将帮助页面直接安装到 Web API 项目中并调试相同的方法,我可以看到 _apiDescriptions 现在存在。

谁能解释一下 Web API 项目正在做什么或已经配置了 MVC 项目没有做什么或没有配置?

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api asp.net-web-api2 asp.net-web-api-helppages


    【解决方案1】:

    我不确定这是否会帮助其他偶然发现此问题的人,我从 VS 的空白模板开始,并通过 Nuget 包添加了帮助文件。

    因为它是一个空白模板并且我没有设置区域,所以它在 global.asax 中缺少以下内容

    AreaRegistration.RegisterAllAreas();
    

    这阻止了 HelpPageConfig.Register 被调用,因此 Xml 文档提供程序从未被设置。

    【讨论】:

      【解决方案2】:

      自己设置一下,我想我遇到了类似的问题,如果我没看错你说的话。

      尝试以下方法:

      1. 转到区域\HelpPage\App_Start\HelpPageConfig.cs。在第 36 行附近,您需要确保取消注释该行,如下所示:

      //// Uncomment the following to use the documentation from XML documentation file.
                  config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/ApiDocumentation.xml")));
      并确保路径正确。我碰巧将我的 xml 文件放在 App_Data 目录中。
      1. 转到项目=>属性=>构建。在输出下,确保选中“XML 文档文件”框,并将其指向 App_Data\ApiDocumentation.XML(假设你把它放在我上面做的同一个地方。
      2. 如果我没记错的话,我必须确保将 .xml 文件添加到项目中 - 当我尝试将其发布到工作中的测试服务器时遇到了一些问题,它说找不到文件。构建后,只需转到 App_Data,右键单击文件夹,然后添加现有项目。导航到文件系统中的 App_Data 并选择 xml 文件。

      这有望解决您的问题!

      【讨论】:

        猜你喜欢
        • 2015-07-18
        • 1970-01-01
        • 2014-12-27
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多