すぐに使用できる構成は、私のマシンで完全に機能し、まったく問題ありません。
しかし、テスト環境にデプロイすると、次のメッセージが表示されます
500:{"メッセージ": "エラーが発生しました。" }/api/swagger/docs/v1
それはbaseUrlまたはそのようなものと関係があると推測していますが、どこから始めてもわからない。
私のルートはプロジェクト内で正常に機能します。すべてのwebapiエンドポイントを呼び出すことができ、それらは正しく応答します。
どんな助けも大歓迎です
デバッグ時には、デバッグ構成を使用していました(プロパティ->ビルドタブ->出力-> XMLドキュメントファイルのXmlCommentsを生成しました)。
リリース構成でこれを行っていませんでした(...)
Swashbuckleは、web.configのcustomErrors設定が原因で実際のエラーメッセージを隠しています。 customErrorsをoffに設定すると、より良いエラーメッセージが表示されます。
<system.web>
<customErrors mode="Off"/>
</system.web>
受け入れられた回答に記載されているように、XMLドキュメントファイルの出力がbinであり、bin\Debugまたはbin\Release(すべてのビルド構成でこれを確認します)。
複数のXMLドキュメントファイルを使用しているため、まだ500の応答がありました。私のSwaggerConfig実装には、2つのプロジェクト(WebApiプロジェクト自体とWebApiプロジェクトによって参照されるクラスライブラリ)のXMLドキュメントファイルが含まれています。
c.IncludeXmlComments(string.Format(@"{0}\bin\MyWebApiProject.xml", System.AppDomain.CurrentDomain.BaseDirectory));
c.IncludeXmlComments(string.Format(@"{0}\bin\ReferencedProject.xml", System.AppDomain.CurrentDomain.BaseDirectory));
WebApiプロジェクトのXMLドキュメントファイルは、サイトのbinフォルダーに正しく公開されましたが、参照プロジェクトのXMLドキュメントファイルは(のbinフォルダーに表示されていても) compileプロジェクト)。
そのため、テキストエディターでWebApiプロジェクトファイル(.csproj)を変更し、下部に次のセクションを追加する必要があります(ReferencedProjectを置換):
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\ReferencedProject\bin\ReferencedProject.xml" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
詳細な説明については、 VS2010 Web展開パッケージを使用して追加ファイルを含める方法 を参照してください。
受け入れられた答えは、あなたが最初に試すべきものです。
ただし、XML出力をApp_Data \に設定し、Swashbuckleをそのディレクトリから読み取るように設定しているため、どの方法でビルドするかは関係ありません。xmlファイルは「存在する」ことになります。それにもかかわらず、私はまだエラーを受け取っていました...
MSDNのフォーラム @ enough2012の答え:
[公開]ダイアログの[設定]ペインにある[ファイル公開オプション]で[宛先の追加ファイルを削除]を選択します。
魅力のように働いた!