4

ASP.NET ヘルプ ページを既存の MVC プロジェクトで実行するように設定しようとしていますが、同じソリューション内の Web API プロジェクトのドキュメント ファイルを指しています。規約には、文書化されている Web API 内で実行されるヘルプ ページがありますが、この場合は兄弟 MVC プロジェクトでそれが必要です。

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

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

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

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

MVC プロジェクト内で実行されているヘルプ ページのスクリーンショット

ただし、ヘルプ ページを Web API プロジェクトに直接インストールして同じメソッドをデバッグすると、 が存在することがわかり_apiDescriptionsます。

Web API プロジェクト内で実行されているヘルプ ページのスクリーンショット

Web API プロジェクトが何を行っているか、MVC プロジェクトが行っていない、または構成していない構成を説明できる人はいますか?

4

2 に答える 2

8

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

次のことを試してください。

  1. Areas\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 ファイルを選択します。

これで問題が解決することを願っています。

于 2016-06-16T17:59:06.660 に答える