3

次のガイドを使用して、Web API アプリケーションに Swashbuckle をインストールしました: http://bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/

ローカルの IIS Express / Cassini インストールで実行し、ブラウザで http://localhost:59988/swagger/ を指定するとうまく機能します

ただし、たとえばhttp://my.localhost/swagger/で、IIS8.5 を介してアプリケーションにアクセスする場合は機能しないようです 。

/swagger/ui/index/ にリダイレクトされ、例外がスローされます

{"メッセージ":"エラーが発生しました。","ExceptionMessage":"マッピングが見つかりません - index/","ExceptionType":"Swashbuckle.SwaggerUi.AssetNotFound","StackTrace":" Swashbuckle.SwaggerUi.EmbeddedAssetProvider で。 GetAsset(String rootUrl, String path)\r\n at Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request, CancellationToken cancelToken)"}

問題は、IIS が私をリダイレクトし、URL の末尾に末尾のスラッシュを追加するという事実から発生しているようです (これは、エラー メッセージにも示されています)。

私は持っている

質問: IIS が URL の末尾にスラッシュを追加するのはなぜですか? IIS でスワッシュバックルを機能させるためのオプションは何ですか?

4

1 に答える 1

0

同じ問題がありました: IIS 設定をいくつか変更しようとしたところ、Swagger が機能しなくなり、設定を元に戻しても解決しませんでした。

再び機能させるためにこれを行いました:

  1. 管理者としてNOTEPADを使用して C:\Windows\System32\inetsrv\config\applicationHost.config を開きます (ここでは Notepad++ またはその他のエディターは機能しませんでした)。
  2. <sites>and<application>タグ (swagger アプリケーションがホストされている場所) に移動し、何も間違っていないことを確認します。Swagger の誤って構成された設定は、何らかの理由でここで元に戻されませんでした。設定を手動でクリーニングしてから iisreset を実行すると、問題が解決しました。
于 2016-04-04T09:11:50.143 に答える