2016-09-20 13 views
0

.net webapiヘルプページnugetプロジェクトをwebapiに追加してヘルプドキュメントを生成しました。WebApiヘルプページがXMLファイルから読み取られない

私は次のようにコマンドラインで追加しました。

インストール・パッケージMicrosoft.AspNet.WebApi.HelpPage

その最新バージョンがインストールされています。私は、これは、ここでの例を以下れる

App_Dataに/ XmlDocument.xml

に出力するWEBAPIプロジェクトの出力を設定します。

WebApi Help Tutorial

、これはうまく生成されています。

私はその行をコメント解除しました。

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

この場合も同様です。

しかし、私は私のAPIを実行し、webapi/helpのURLに移動します。返されるモデルはnullですか? (エラーもスローされているようには見えません)。

レイアウトのヘッダーは表示されますが、APIドキュメントは表示されません。

私はこのAPIでOAuthを使用しています。参考のために、これは私のstartup.cs

public void Configuration(IAppBuilder app) 
    { 
     HttpConfiguration config = new HttpConfiguration(); 

     LoggingConfig.RegisterLogger(); 

     config.DependencyResolver = new UnityDependencyResolver(
      UnityConfig.GetConfiguredContainer()); 


     ConfigureOAuth(app); 

     WebApiConfig.Register(config); 
     app.UseCors(CorsOptions.AllowAll); 
     app.UseWebApi(config); 

     AreaRegistration.RegisterAllAreas(); 

    } 

答えて

0

OKです、

は、私はそれをソートするために管理し、それが実際のスタートアップによるものであった(そのそう、これはすべての問題を引き起こしている可能ルートを解決しますが?)代わりに.csが使用されています。

そこで私は、次のヘルプファイルを変更する必要がありましたGlobalConfiguration.Configuration

とは対照的に、相続人は私の更新Startup.cs

public static HttpConfiguration HttpConfiguration { get; private set; } 
    public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get; private set; } 

    public void Configuration(IAppBuilder app) 
    { 
     HttpConfiguration = new HttpConfiguration(); 

     LoggingConfig.RegisterLogger(); 

     HttpConfiguration.DependencyResolver = new UnityDependencyResolver(
      UnityConfig.GetConfiguredContainer()); 


     ConfigureOAuth(app); 

     AreaRegistration.RegisterAllAreas(); 

     WebApiConfig.Register(HttpConfiguration); 
     app.UseCors(CorsOptions.AllowAll); 
     app.UseWebApi(HttpConfiguration); 
    } 

Startup.HttpConfigurationを使用するように変更する必要があります。具体

HelpPageAreaRegistration.RegisterArea

、ことを特徴とします。

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

     HelpPageConfig.Register(Startup.HttpConfiguration); 
    } 

HelpController.cs

public HelpController() 
     : this(Startup.HttpConfiguration) 
    { 
    } 

うまくいけば、これは誰かに役立ちます。

関連する問題