5

我添加了帮助页面 Nuget 包来为我的 Web API 创建文档,但它对我不起作用,没有显示任何 API 方法。

我未注释行:

config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

我选中了 XML 文档文件框并将路径设置为App_Data/XmlDocument.xml

我不使用 Glimpse,因为这里写了很多解决方案。

我什至为具有授权的帮助页面安装了 nuget 包,但它没有帮助

这有什么问题?如果我启动一个空项目,它就可以正常工作,但是这个 API 太大而无法重新开始。

4

1 回答 1

9

如果您使用 OWIN 作为中间件(就像我一样),您可能会在它的HttpConfiguration启动方法中初始化一个新的。问题是 theHelpController和 theHelpPageConfig正在使用GlobalConfiguration.Configuration,这似乎是错误的。对我有什么帮助:

第 1 步:使启动HttpConfiguration成为静态字段

[assembly: OwinStartup(typeof(MyProject.API.Startup))]
namespace MyProject.API
{
    public class Startup
    {
        //new
        public static HttpConfiguration HttpCfg;
        //

        public void Configuration(IAppBuilder app)
        {
            HttpCfg = new HttpConfiguration();
            WebApiConfig.Register(HttpCfg);
            app.UseWebApi(HttpCfg);

            AreaRegistration.RegisterAllAreas();
        }
    }
}

第2步:像这样去HelpPageAreaRegistration编辑RegisterArea方法

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "HelpPage_Default",
        "Help/{action}/{apiId}",
        new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });

    //old
    //HelpPageConfig.Register(GlobalConfiguration.Configuration);

    //new
    HelpPageConfig.Register(Startup.HttpCfg);
}

第 3 步:像这样转到HelpController并编辑标准构造函数

//old
//public HelpController() : this(GlobalConfiguration.Configuration){ }

//new
public HelpController() : this(Startup.HttpCfg){ }

我希望这会有所帮助,而且还为时不晚;)

于 2016-11-17T21:41:58.720 回答