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

生产服务器ASP.NET Core Web API仅出现MySQL连接超时错误求助

解决思路
  • 网络连通性排查

    • 在生产服务器执行 ping 171.1.1.0,验证MySQL服务器的基础可达性。
    • 用 telnet 171.1.1.0 3306(若MySQL端口已修改,替换为对应端口)测试端口是否开放,确认生产服务器能访问MySQL服务端口。
    • 检查生产服务器的Windows防火墙、云服务商安全组配置,确保允许出站访问MySQL服务器的IP和端口。
  • MySQL服务器权限与配置检查

    • 查看MySQL配置文件(Linux为my.cnf,Windows为my.ini),确认bind-address是否允许生产服务器IP访问,或设置为0.0.0.0(需兼顾安全)。
    • 验证MySQL用户权限,确保连接字符串中的账号拥有从生产服务器IP访问myDbName的权限,可执行SQL:
      GRANT ALL PRIVILEGES ON myDbName.* TO 'your_user'@'生产服务器IP' IDENTIFIED BY 'your_password';
      FLUSH PRIVILEGES;
      
  • 连接字符串与本地验证

    • 对比本地与生产环境appsettings.json(或环境变量)中的连接字符串,确认IP、端口、用户名、密码、数据库名无拼写错误。
    • 在生产服务器用MySQL客户端(如Navicat)使用相同参数连接数据库,排除代码外的连接问题。
  • IIS及运行环境配置

    • 检查IIS应用程序池的.NET CLR版本,ASP.NET Core 5需设置为无托管代码。
    • 测试将应用程序池身份改为LocalSystem(后续可调整为最小权限),确认是否因权限不足导致网络访问失败。
    • 确认生产服务器已安装ASP.NET Core 5.0运行时(托管包),缺失则需下载安装。
  • EF Core配置优化

    • 按照错误提示,在UseMySql调用中添加瞬时故障重试机制:
      services.AddDbContext<serviziContext>(options =>
          options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString))
                 .EnableRetryOnFailure());
      
    • 可在连接字符串中增加超时时间,例如添加 Connection Timeout=30(默认15秒,按需调整)。

内容的提问来源于stack exchange,提问作者Simone D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:32:39