netcore3.1配置swagger时报错

错误描述:按照netcore2.X的配置,再次配置swagger后,/swagger/index.html打不开。。。

解决方案:在Startup.cs 文件中 Configure 方法里

             //允许跨域
            app.UseCors("any");
            //启用中间件服务生成Swagger作为JSON终结点
            app.UseSwagger();
            //启用中间件服务对swagger-ui,指定Swagger JSON终结点
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.RoutePrefix = string.Empty;
            });        

把标黄色背景的这段去掉了就可以了。或者改为特定的路由,替换默认的 swagger,如 

c.RoutePrefix = "doc";

则swagger的访问地址变为"/doc/index.html"

参考地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio

要在应用的根 (http://localhost:<port>/) 处提供 Swagger UI,请将 RoutePrefix 属性设置为空字符串:

可能是设置了和程序中的默认地址冲突了,但不知道为什么之前2.X就不存在问题。。。

猜你喜欢

转载自www.cnblogs.com/wangbg/p/12381437.html