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

ASP.NET Core API部署后调用Firebase FCM发送推送报ServiceUnavailable错误

FCM服务部署后返回ServiceUnavailable错误的可能原因及排查方案

1. 网络连通性问题(最高概率)

FCM依赖的Google服务接口在部分区域无法直接访问,本地运行正常通常是因为本地配置了代理,服务器未做对应配置导致请求无法送达。

  • 排查步骤:
    • 在服务器上直接通过curl或浏览器访问https://fcm.googleapis.com,若返回401/404则代表网络连通,若超时/连接失败则为网络不通
    • 检查服务器系统代理配置:注意ASP.NET Core应用默认运行在应用池服务账号下,用户级别的代理配置对服务账号无效,需配置系统级代理,或在代码中为Firebase SDK显式指定代理
    • 确认服务器出口IP没有被Google服务临时限制

2. TLS版本不匹配

Firebase服务要求请求使用TLS 1.2及以上版本,部分服务器的.NET运行环境默认启用的TLS版本过低会导致请求被拦截。

  • 排查步骤:
    • 在FirebaseApp初始化代码前添加强制指定TLS版本的代码:
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13;
      
    • 检查服务器组策略、注册表配置,确认TLS 1.2/1.3未被禁用

3. 防火墙/安全软件拦截

服务器的系统防火墙、第三方杀毒软件、EDR等安全工具可能会拦截对外访问Google服务的请求。

  • 排查步骤:
    • 临时关闭服务器防火墙和第三方安全工具,重试推送请求,若恢复正常则为安全规则拦截
    • 添加入站/出站规则,将fcm.googleapis.com、accounts.google.com等FCM和Google OAuth依赖的域名加入白名单

4. IIS应用池配置问题

若使用IIS部署服务,应用池的运行身份配置错误可能导致请求无权限发出。

  • 排查步骤:
    • 将应用池的运行身份从默认的Local Service修改为Local System或拥有网络访问权限的自定义服务账号,重启应用池后测试
    • 在服务器本地运行一个包含最简FCM推送逻辑的控制台程序,若控制台可正常推送则确认是IIS配置问题,排除环境网络因素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:48:03