【问题标题】:Intermittent issue with ability to connect to Azure SQL Database from Azure Virtual Machine从 Azure 虚拟机连接到 Azure SQL 数据库的间歇性问题
【发布时间】:2015-03-26 14:54:13
【问题描述】:

我有一个在 Azure 虚拟机上运行的 .NET WCF 服务应用程序。它与已列入白名单且一切正常的 Azure SQL 数据库连接并交互。一段时间后(通常为 5 到 7 天),Azure 虚拟机无法再连接到 Azure SQL 数据库。这是我在这种损坏状态下检查的内容:

1) 我已关闭连接池并检查“netstat -a”以查看我的应用程序在达到此状态时是否泄漏连接。不是。

2) 我将本地开发机器(运行相同的应用程序)指向 Azure SQL 数据库。一切正常。连接没问题。

3) 我尝试从 Azure 虚拟机远程登录到端口 1433 上的 Azure SQL 数据库。它无法连接。我在下面提到的重启后,我可以 telnet 到 1433 就好了。

4) 我尝试从本地开发机器远程登录到端口 1433 上的 Azure SQL 数据库。它连接正常。

因此,虚拟机查找 Azure SQL 数据库似乎存在问题。

要让它再次工作,我必须重新启动虚拟机。 iisreset 或循环应用程序池无效。

这在上个月发生了 5 次。一旦我重新启动虚拟机,它将正常工作大约 5 到 7 天,然后再次进入此状态。它似乎无法自行恢复,因为我已将其置于这种状态超过一天,看看它是否会自我纠正。

任何解决问题的帮助或关于当它进入这种状态时检查什么的想法将非常感激。

【问题讨论】:

  • 你检查过内存泄漏吗? SQL VM 不会主动关闭任何端口,因此端口在几天后关闭的事实表明内存泄漏可能导致端口关闭。
  • 我遇到了完全相同的问题,只是我没有从我的应用程序中的 azure db 获得任何内容,就好像它根本没有连接一样。但是FreeTDS连接到数据库就好了。我想知道这是与虚拟机本身或安装在其上的操作系统有关的问题,因为应用程序可以在我的电脑上运行。如果我解决了问题,我会告诉你它是如何解决的。 :)

标签: azure azure-sql-database azure-virtual-machine


【解决方案1】:

将评论转换为答案:

您检查过内存泄漏吗? SQL VM 不会主动关闭任何端口,因此端口在几天后关闭的事实表明内存泄漏可能导致端口关闭。

【讨论】:

    【解决方案2】:

    这是由正在泄漏内存的 Windows 服务引起的。当服务达到大约 400MB 的 RAM 消耗时,我能够将块 telnet 复制到 1433 上的 DB 服务器。当我回收服务时,它开始工作。我已经修复了泄漏,现在一切正常。

    【讨论】:

    • 很高兴知道您发现了问题。如果您以后碰巧再次看到此帖子,请更新帖子。
    猜你喜欢
    • 1970-01-01
    • 2021-07-22
    • 2021-07-09
    • 2021-12-01
    • 2021-07-16
    • 2016-03-16
    • 2022-12-14
    • 1970-01-01
    • 2020-12-03
    相关资源
    最近更新 更多