Swagger UI:加载API定义失败。

7
我已经在net5中部署了一个简单的Web API,并启用了Swagger(使用默认设置),这意味着在 Startup.cs 文件中:
  • Configure Services 方法:
    services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("v1", new OpenApiInfo { Title = "MyCompany.WebApi", Version = "v1" });
                });
  • 配置方法:
app.UseSwagger();
            app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyCompany.WebApi v1"));

我将同一应用程序部署到了两个本地 IIS 网站上,第一个作为默认 WebSite 上运行的应用程序,使用默认的 80 端口,如下所示:

enter image description here

第二个节点作为独立的WebSite运行在端口8085上,如下所示:

enter image description here

然后对于第二个(作为单独的网站节点托管),一切正常,所以我可以看到我的API定义:

enter image description here

但是,对于第一个选项,在“默认网站”下作为应用程序托管的API文档无法加载: enter image description here 尽管swagger.json文件是可访问的: enter image description here 因此,看起来Swagger正在搜索index.html以在WebSite的“根目录”中显示Swagger-UI,在第一个选项的情况下,应用程序托管在默认WebSite文件夹下,它找不到一种方法来显示swagger UI。在这种情况下,我们需要在swagger定义中添加特定的内容吗?
感谢任何回复!
Emmanuel.

你知道我们如何解决这个问题吗? - Ayushi Gupta
1个回答

2

你尝试过这个吗:

app.UseSwaggerUI(c => c.SwaggerEndpoint("swagger/v1/swagger.json", "MyCompany.WebApi v1"));

我从Swagger JSON路径中删除了开头的“/”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接