You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6项目Swagger无法打开报错但Postman请求正常是什么原因?

问题根因

这个报错是Swashbuckle.AspNetCore 6.2.3版本与.NET 6运行时不兼容导致的:6.2.3版本的Swagger生成逻辑依赖Microsoft.AspNetCore.Http.Metadata.ITagsMetadata类型,但这个类型在.NET 6的Microsoft.AspNetCore.Http.Abstractions 6.0.0.0程序集中的结构和该版本Swagger预期的不一致,因此触发类型加载异常。
接口可以通过Postman正常调用是因为该异常仅在Swagger生成接口文档时触发,不影响业务接口本身的运行逻辑,和Redis相关逻辑没有关联。

解决方案
  • 第一步:升级Swashbuckle.AspNetCore包版本,将你项目csproj文件中的包引用版本最低升级到6.4.0(该版本开始完全适配.NET 6),参考配置:
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />

你也可以选择升级到当前最新的稳定版,兼容性更好。

  • 第二步:修复Swagger配置的语法问题,你当前AddSwaggerGen中的SwaggerDoc配置缺少闭合括号,修正后代码如下:
services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "Basket.Api", Version = "v1" });
});
  • 第三步:清理项目缓存,删除项目目录下的bin、obj文件夹,执行dotnet restore重新还原依赖包,再重新编译运行项目即可。

内容的提问来源于stack exchange,提问作者Henrique N. Mendes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:45:01