.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" });
});