1. ホーム
  2. asp.net-core-mvc

[解決済み] asp .net CORE / MVC 6 アプリで Swagger を設定すると 500 エラーが発生する。

2023-01-06 17:24:07

質問

新しい asp .net CORE / MVC 6 プロジェクトで基本的な swagger API ドキュメントをセットアップしようとしていますが、swagger UI から 500 エラーを受け取りました。 500 : http://localhost:4405/swagger/v1/swagger.json

私のスタートアップクラスには、次のコードがあります。

using Swashbuckle.SwaggerGen;
using Swashbuckle.SwaggerGen.XmlComments;
using Swashbuckle.Application;
....
public void ConfigureServices(IServiceCollection services)
{
  ...
  services.AddSwaggerGen();
  services.ConfigureSwaggerDocument(options =>
  {
    options.SingleApiVersion(new Info
    {
        Version = "v1",
        Title = "Blog Test Api",
        Description = "A test API for this blogpost"
    });
  });
}

と入力し、「Configure」で

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
....
  app.UseSwaggerGen();
  app.UseSwaggerUi();
....
}

ビルドして実行すると、swagger/UI/index.htmlにアクセスするとUIは表示されるのですが、上記の500エラーが表示されます。swagger/v1/swagger.jsonのリンクに行くと、consoleに以下の500エラーが表示されます。 Failed to load resource: the server responded with a status of 500 (Internal Server Error)

500の根本的な原因を把握する方法、またはこのエラーをスローしている理由を把握するためにswaggerで追加のデバッグを有効にする方法はありますか?私が見たいくつかのチュートリアルに基づき、私がスタートアップで持っているものだけが基本的な実装に必要です。私は追加の情報を提供することができれば、私に知らせてください。

EDIT: これはrc1用で、現在出ている新しいnetcore 1.0には関係ないかもしれません(2016/6/29)

どのように解決するのですか?

最初は私も500エラーになりました。スタックトレースの奥の方に書いてありました。 System.NotSupportedException: パス 'api/hotels' の HTTP 動詞が未束縛です。HttpMethodAttributeが足りないのでしょうか?

私の API メソッドの 1 つに HttpGet 属性がないことが判明しました。

[Microsoft.AspNetCore.Mvc.HttpGet]