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

部署到Azure后调用MongoDB时持续出现Http 500超时问题求助

Azure部署ASP.NET Web API连接MongoDB超时问题排查与解决

问题重现

本地运行ASP.NET Web API连接MongoDB一切正常,但部署到Azure后,只要涉及MongoDB操作(哪怕只是调用_mongoclient.GetDatabase("MyDatabase").ToString())就触发超时,错误信息如下:

System.TimeoutException: A timeout occurred after 30000ms selecting a server using CompositeServerSelector

排查与解决步骤

  • 检查MongoDB网络访问控制
    若使用MongoDB Atlas或云托管MongoDB,需将Azure App Service的所有出站IP地址添加至MongoDB的IP白名单。Azure App Service的出站IP可在门户“属性”面板中查看,务必全部添加,避免遗漏导致的连接失败。
    若为Azure Cosmos DB兼容MongoDB,确认已开启“允许所有网络访问”或添加了App Service的IP范围。

  • 验证连接字符串配置
    确保Azure环境中的MongoDB连接字符串与本地一致,重点检查主机地址(需为公网可访问地址,不能用localhost)、端口、认证用户名/密码是否正确。可临时在连接字符串中添加超时参数延长测试时间:connectTimeoutMS=60000&socketTimeoutMS=60000,确认连接是否恢复后再调整合理值。

  • 检查App Service网络配置
    若App Service启用了VNet集成,需确认VNet与MongoDB所在网络的路由已打通,且网络安全组(NSG)允许双向流量通过。若使用私有端点连接MongoDB,需验证私有端点的DNS解析正常,App Service能正确解析到MongoDB的私有IP。

  • 测试端口可达性
    登录Azure App Service的Kudu控制台(https://<app-name>.scm.azurewebsites.net),执行以下命令测试MongoDB端口是否可访问:

    telnet <mongodb-host> <port>
    # 或使用nc命令
    nc -zv <mongodb-host> <port>
    

    若连接失败,说明网络层面存在阻断,需优先排查防火墙或路由规则。

  • 确认驱动版本兼容性
    确保本地与Azure环境使用的MongoDB .NET驱动版本一致,避免因版本不兼容导致的连接协议问题。建议使用官方推荐的稳定版本驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:50:31