【问题标题】:Azure mysql virtual machine stops working after a while一段时间后 Azure mysql 虚拟机停止工作
【发布时间】:2016-09-27 21:15:00
【问题描述】:

我在 azure 上部署了一个 ASP.net Web API,在 linux 上运行的单独虚拟机中也有一个 MySql 数据库。我遇到的问题是,当我重新启动数据库并从 Visual Studio 重新部署 Web API 时,Web API 和 mySql 之间的连接工作正常,但大约 30 分钟后出现此错误:

“无法连接到任何指定的 MySQL 主机”

如果我想让它再次工作,我必须使用数据库重新启动虚拟机并从 Visual Studio 重新部署 Web API。我正在使用这样的连接字符串来连接我的网络配置

<add name="DefaultConnection" connectionString="Server=publicIpAddress;Port=3306;Database=db_12345_db;Uid=user;Pwd=*********;" providerName="MySql.Data.MySqlClient" />

此连接在我们切换到 azure 之前的服务器上正常工作。我怀疑我没有正确配置 azure。

知道如何解决这个问题吗?谢谢

【问题讨论】:

    标签: c# mysql azure asp.net-web-api


    【解决方案1】:

    连接中断

    连接到 Azure SQL 数据库时,空闲连接可能会在一段时间不活动后被网络组件(例如防火墙)终止。在这种情况下,有两种类型的空闲连接:

    • 在 TCP 层空闲,连接可以被任意数量丢弃 网络设备。
    • SQL Azure 网关空闲,其中可能发生 TCP 保持活动消息(从 TCP 角度看,使连接不空闲),但在 30 分钟内没有活动查询。在这种情况下,网关将在 30 分钟时确定 TDS 连接空闲并终止连接。

    https://github.com/sidorares/node-mysql2/issues/316
    希望这对你有用。

    【讨论】:

    • OP 没有使用 SQL 数据库服务。他们在虚拟机中运行 MySQL。
    • 您是否让连接闲置约 30 分钟?
    • Web api 处理来自我的 iOS 应用程序的请求,它恰好空闲了大约 30 分钟或更长时间。如何设置它在时间间隔后不终止连接或在终止发生时建立新连接?
    • 这里不展开讨论。随意将其移至聊天。或者问一个不同的问题。
    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 2013-11-19
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多