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

ASP.NET Core 3.1部署AWS EC2后Google登录报Resource temporarily unavailable

问题排查与解决步骤

1. 先定位错误根因

你日志中返回的SocketException (11): Resource temporarily unavailable错误,本质是ASP.NET Core应用在调用Google OAuth接口兑换授权码时网络连接失败,并非Nginx转发用户请求到应用的环节出错,优先排查容器到Google服务的网络连通性:

  • 本地运行正常是因为本地网络可正常访问Google服务,EC2环境的网络限制是首要排查点
  • 进入运行ui服务的容器内部测试连通性:
    1. 执行docker ps找到ui服务对应的容器ID
    2. 执行docker exec -it <容器ID> bash进入容器
    3. 执行curl -v https://accounts.google.com,查看是否能正常收到响应

2. 网络连通性问题修复

非中国区EC2

检查EC2实例绑定的安全组出站规则,确认已放行443端口的TCP出站请求(默认安全组允许所有出站请求,若你手动修改过规则需要补充配置)。

中国区EC2

因网络限制无法直接访问Google服务,需要给ASP.NET Core容器配置合法的HTTP/HTTPS代理,在docker-compose.yml的ui服务environment配置段新增如下内容:

HTTP_PROXY: http://<代理服务地址>:<端口>
HTTPS_PROXY: http://<代理服务地址>:<端口>
NO_PROXY: localhost,db,127.0.0.1

NO_PROXY配置用于避免内部服务访问(比如访问数据库)走代理,需根据你的内部服务地址补充。

3. 连通性正常仍报错的后续排查

如果容器内可正常访问Google服务,再检查回调地址相关配置:

3.1 配置ASP.NET Core信任转发头

你当前的Nginx配置已经正确添加了X-Forwarded-Proto等头,但ASP.NET Core默认不会信任这些转发头,会导致OAuth回调地址生成错误(比如生成http前缀的地址而非https),需在Startup.cs的Configure方法最开头添加转发头中间件:

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

3.2 检查Google OAuth配置

确认Google Cloud后台对应OAuth客户端的授权重定向URI已经添加了线上地址https://<你的域名>/signin-google,本地使用的localhost回调地址无法在线上环境生效。

4. 快速验证方案

你可以临时在EC2安全组放行5000端口的入站请求,直接通过http://<EC2公网IP>:5000访问应用测试登录功能:

  • 如果可以正常登录,说明问题出在Nginx和ASP.NET Core的转发头配置环节
  • 如果仍然无法登录,完全排除Nginx配置问题,继续排查容器网络配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:42:02