好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Swagger在IIS中访问404怎么办?

以下是解决 Swagger 在 IIS 中访问 404 问题的完整方案:

1. ?强制设置开发环境?

修改 web.config,添加环境变量确保 Swagger 启用:

<aspNetCore processPath="dotnet" arguments=".\YourApp.dll" hostingModel="inprocess">

  <environmentVariables>

    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />

  </environmentVariables>

</aspNetCore>

(生产环境默认禁用 Swagger,需手动开启)?

2. ?检查中间件顺序?

在 Startup.cs 中确保中间件顺序正确:

app.UseSwagger();  // 必须在 UseRouting 之前

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

(顺序错误会导致路由拦截)?

3. ?验证 IIS 模块配置?

确认服务器已安装 AspNetCoreModuleV2?58

应用程序池设置为 ?无托管代码? 模式

4. ?处理路径问题?

若部署在子路径(如 /api),需调整 Swagger 配置:

csharp

Copy Code

app.UseSwaggerUI(c => {

    c.SwaggerEndpoint("swagger/v1/swagger.json", "API");

});

(路径不匹配会导致 404)

5. ?排除静态文件拦截?

确保未通过重定向规则拦截 /swagger 路径:

xml

Copy Code

<location path="swagger">

  <system.webServer>

    <httpErrors existingResponse="PassThrough" />

  </system.webServer>

</location>

(静态资源拦截是常见原因)

6. ?补充排查步骤?

直接访问 https://your-domain/swagger/v1/swagger.json 验证 JSON 文件可访问

检查项目发布模式(依赖框架/独立部署需匹配运行时)

清理浏览器缓存或使用无痕模式测试?7

通过以上步骤可系统性解决 IIS 中 Swagger 404 问题。


查看更多关于Swagger在IIS中访问404怎么办?的详细内容...

  阅读:13次