Swagger 在本地运行但不在 IIS 上运行,不解析基本路径

Kil*_*ine 6 iis json swagger swagger-ui asp.net-core

我正在设置 Swagger 来记录我的 API。

我已经设置了SwaggerEndpoint规范 json 的相对路径,如下所示:

启动配置

当我在本地调试时,一切正常。但我的网站只是作为http://localhost:44348/index.html.

当我部署到虚拟路径上的 IIS 时,它会崩溃:

不解决 swagger.json

  1. 请注意,浏览器中的 URL/imaging4castapi_UAT/作为路径的一部分
  2. 请注意,对 swagger.json 的实际请求缺少路径的基本部分。

这是我尝试过的:

  1. 我尝试删除RoutePrefix覆盖。但这并不能解决。
  2. 我尝试使用类似的应用程序路径,"~/swagger/..."但它是由服务器在 Razor 页面和 css 等视图元素上转换的,并且在Startup.

我很难理解这是客户端设置问题还是与我的网站在 IIS 上的托管方式有关的问题。

想法?

eVo*_*lve 6

尝试使用相对路径:

setupAction.SwaggerEndpoint("../swagger/Imaging4CastApiSpecification/swagger.json", "4Cast API");
Run Code Online (Sandbox Code Playgroud)

请注意以下问题的答案和解释:SwashBuckle