.NET Core WebAPI 部署IIS后 Swagger.json 提示没有找到问题与解决方案

问题:

.NET Core WebAPI 应用程序部署到IIS服务器上运行提示“Not Found /swagger/v1/swagger.json”,但在Visual Stuido工具能正常跑起来。

注:当前WebAPI应用程序是部署在IIS服务器>> Default Web Site 网站下的“应用程序”。

原因:

由IIS在IISExpress\ApplicationURL中的主机名之后的(或没有)附加路径进行托管,例如:

http://host/swagger

但通过IIS在临时环境上进行部署,主机名之后会增加附加路径。

如:

http://staginghost/char/swagger

注:“char”就是附加的路径。

解决方案:

在startup.cs类配置SwaggerUI中间件,指定读取 /swagger/v1/swagger.json 文件路径增加相对路径的判断处理,如下:

app.UseSwaggerUI(c => 
{ 
    string swaggerJsonBasePath = string.IsNullOrWhiteSpace(c.RoutePrefix) ? "." : "..";     
    c.SwaggerEndpoint($"{swaggerJsonBasePath}/swagger/v1/swagger.json", "My API"); 
});

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值