Swagger / Swashbuckle错误-无法呈现此定义

时间:2019-07-09 20:19:56

标签: swashbuckle azure-app-service-envrmnt .net-core-2.2

.Netcore 2.2 swashbuckle 4.0.1

Swagger UI可在localhost上运行,但是在将Azure ASE部署到由Application Gateway管理的站点后,将不会加载swagger。 (确认生成了swagger.json)。错误是.....

无法呈现此定义 提供的定义未指定有效的版本字段。

请指明有效的Swagger或OpenAPI版本字段。支持的版本字段包括:“ 2.0”和与openapi相匹配的版本字段:3.0.n(例如,openapi:3.0.0)。

我浏览了其他类似的帖子,并尝试了其他建议,但没有解决方法。这是启动时适用的代码。

            app.UseStaticFiles();

        if (env.IsDevelopment())
        {
            app.UseSwagger(c =>
            {
                c.RouteTemplate = "swagger/{documentName}/swagger.json";

            });
        }
        else
        {

            app.UseSwagger(c =>
            {
                c.RouteTemplate = "swagger/{documentName}/swagger.json";

                c.PreSerializeFilters.Add((doc, request) =>
                {
                    var root = request.Host.Value;
                    doc.Host = root;

                });
            });
        }
        // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
        // specifying the Swagger JSON endpoint.
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "TestSwagger Api V1");
            c.RoutePrefix = string.Empty;
        });


        app.UseMvc();


/* from ConfigureServices */

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

0 个答案:

没有答案