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

部署为Windows Service的Asp.Net Core MVC Api调用Swagger报Failed to fetch

排查方向

1. 确认CORS策略是否真正生效

  • 先修正策略名错误:将使用时的AllowAllOrigins改为定义好的AllowAnyOrigin,重新发布服务并重启。
  • 打开浏览器开发者工具(F12),查看Network面板的请求响应头,确认Access-Control-Allow-Origin是否存在。同时检查program.cs中间件顺序:CORS中间件必须放在UseRouting之后,UseAuthorization和UseEndpoints之前。

2. 检查Windows Service的运行状态与权限

  • 打开服务管理器(services.msc),确认API服务处于Running状态,启动类型为Automatic。
  • 检查服务登录账户:若使用Local System账户,可能存在权限限制(如访问数据库、文件系统),可尝试更换为具有管理员权限的本地账户,重启服务后测试。
  • 查看事件日志:在事件查看器的「Windows日志->应用程序」中,查找API服务启动或运行时的报错信息,比如端口占用、依赖缺失等。

3. 验证端口监听与占用情况

  • 执行命令netstat -ano | findstr :5000,检查5000端口是否被其他进程占用。若被占用,可终止对应进程或修改API监听端口(在appsettings.json中调整Urls配置,例如"Urls": "http://localhost:5001")。
  • 确认API监听地址:若配置为http://localhost:5000,可尝试用http://127.0.0.1:5000/swagger访问,排除localhost解析问题。

4. 排查浏览器侧限制

  • 禁用Chrome所有扩展(如广告拦截、隐私插件)后测试,避免插件拦截本地请求。
  • 使用Chrome隐身窗口打开swagger页面,排除浏览器缓存或隐私设置的影响。

5. 验证API服务本身可用性

  • 用Postman或curl工具直接调用接口(例如curl http://localhost:5000/api/xxx),若工具能正常访问,说明问题出在浏览器端;若工具也失败,需排查服务内部逻辑或网络配置。
  • 查看API日志(如Serilog、NLog输出),确认请求是否到达服务,以及是否存在内部报错。

内容的提问来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:10:43