0

我在 GoDaddy 服务器上托管了一个网站,许多用户使用各自的用户名和密码访问该网站。我的数据库在 Azure 中。突然间,当本网站的用户尝试使用他们的用户名和密码访问该网站时,尽管他们是有效的,但他们却无法被识别为有效用户。

因此,当这样的事情发生几乎超过 5 分钟时,没有用户可以登录网站。但我可以很好地从我的本地服务器或通过 azure 门户连接到数据库。

登录到事件查看器的一系列错误如下:

  1. System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。

  2. System.Data.SqlClient.SqlException:向服务器发送请求时发生传输级错误。(提供者:TCP 提供者,错误:0 - 现有连接被远程主机强行关闭。)

  3. System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP Provider,错误:0 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。)

  4. SourceEdge.BCL.BCLException:无法执行 ---> System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。

  5. System.ArgumentNullException:值不能为空。参数名称:连接

出现 5 中所示的错误后,所有后续登录都将导致无效用户,尽管值不为空。

你能告诉我为什么这个错误突然发生。但它会在几分钟后恢复正常,有时甚至需要几个小时。

4

1 回答 1

1

我不确定您是否知道与 SQL Azure 的连接处理有关的一些陷阱。由于某些原因,SQL Azure 服务可能随时关闭连接。您需要的是所谓的瞬态条件处理。不确定这是否是问题所在,但如果您不知道这一点,我建议您阅读以下资源:

Microsoft Technet - Windows Azure SQL 数据库连接管理

Microsoft Technet - 重试 Windows Azure SQL 数据库中瞬时故障的逻辑

于 2013-05-15T07:40:41.827 回答