.NET Core 3.1 - Swagger 未加载

.NET Core 3.1 - Swagger not loadig

我正在尝试在我的 WebApi 中实施 Swagger。但是,它不起作用。问题是 swagger.json 永远加载。当我尝试转到 /swagger/v1/swagger.json 时,它永远加载并且我的 CPU 使用率飙升至 100%。

这是我的配置:

public class Startup
{
    ...

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
       ...

        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo
            {
                Version = "v1",
                Title = "ToDo API"
            });
        });

       ...
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider services)
    {
       ...

        app.UseSwagger();

        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        });

        // Setup the endpoints.
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller}/{action}/{id?}");
            endpoints.MapHub<HomeHub>("/homehub");
        });
    }
}

我当然已经在互联网上四处寻找,但找不到任何解决方案。我没有收到任何错误,那可能是什么问题?

更新:

我试过使用 CLI 生成 json 文件,但遇到了同样的问题。它只是加载,没有任何反应。除了占用 24GB 的内存...

我认为是您的某个控制器或 class 导致了此错误。看起来 swagger 试图递归地加载一些东西。

我建议您使用内存分析器(如 dotMemory)来找出发生了什么(是什么造成了内存泄漏)

另一种解决方法是注释掉所有控制器并一个一个启用它们,直到找到错误代码。

您可能还想查看