2

既存のMVCプロジェクトでASP.NET Help Pagesを実行しようとしていますが、同じソリューションのWeb APIプロジェクトのドキュメントファイルを参照しています。規約には、Web APIの内部でヘルプページが実行されていますが、この場合は兄弟MVCプロジェクトに必要です。Web APIヘルプドキュメントをロードしていないページXML

Web APIプロジェクトは、ドキュメントXMLファイルをMVCプロジェクト内のフォルダに出力します。

私はMicrosoft.AspNet.WebApi.HelpPage NuGet packageをMVCプロジェクトにインストールしました。これにより、クラス\Areas\HelpPage\App_Start\HelpPageConfig.csが作成され、このクラスのRegisterメソッドでは、XmlDocumentationProviderというWeb APIのドキュメントファイルへのパスが渡されました。

しかし、ページを読み込むときには、タイトルとプレースホルダの説明のほかに、空です。

HelpController.Indexメソッドをデバッグすると、返されたIApiExplorer_apiDescriptionsが空であることがわかります。

Screenshot from Help Pages running inside MVC project

私は、Web APIプロジェクトに直接ヘルプページをインストールして、同じ方法をデバッグする場合は、私は_apiDescriptionsが今存在していることがわかります。

Screenshot from Help Pages running inside Web API project

誰もがウェブAPIプロジェクトをやっているか、MVCプロジェクトをやっていないか、または構成しなかったように構成しているかを説明することはできますか?

答えて

3

これを自分で設定してください。あなたが正しく言っていることを読んでいるのであれば、同様の問題に遭遇したと思います。

は、以下のことを試してみてください。

  1. ゴーエリア\ HelpPage \ App_Start \ HelpPageConfig.csに。

//// Uncomment the following to use the documentation from XML documentation file. 
 
      config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/ApiDocumentation.xml")));
とパスが正しいことを確認してください。ライン36の周りに、あなたはあなたが以下のように行をコメント解除したいでしょう。私は、xmlファイルをApp_Dataディレクトリに配置していました。

  1. Project => Properties => Buildに移動します。 Outputの下で、 "XML documentation files"ボックスがチェックされていることを確認し、App_Data \ ApiDocumentation.XMLを指します(上記と同じ場所に置いたと仮定します)。
  2. 正しく覚えていれば、私はプロジェクトに.xmlファイルを追加しました。私は仕事場のテストサーバーに公開しようとしたときにいくつかの問題があり、ファイルが見つからないと言っていました。 、と私は、これはアクロスつまずく誰を助けるかどうかわからないんだけど、既存のアイテムに。あなたのファイルシステム内のApp_Dataにまでナビゲートし、xmlファイルを選択します。

これがうまくいけば、あなたの問題を解決します!

1

を追加これは、VSからの空のテンプレートから始めて、Nugetパッケージを介してヘルプファイルを追加しました。

それは空白のテンプレートだったと私は設定なしエリアを持っていた、それはGlobal.asaxの

AreaRegistration.RegisterAllAreas(); 

から次のことを行方不明になったので、これは、このように呼ばれるとしているからXMLドキュメントをHelpPageConfig.Registerを防止プロバイダは設定されていません。

関連する問題