我有一个网站,是一个白标(同一网站的多个版本),我最近刚刚发布了它。目前没有太多流量 - 主要是机器人,但可能有每天800个用户。它托管在Azure上,除了位于非Azure服务器上的管理面板外,还有一个Azure数据库。两个站点都连接到同一个Azure数据库。还有一些工作角色正在运行以处理数据 - 99%的时间它们什么也不做,但会定期检查。
我一直遇到随机错误,持续几秒钟,然后又恢复正常,例如:
“从服务器接收结果时发生传输级错误。(提供程序:TCP Provider,错误:0-远程主机强制关闭了现有的连接。)”
然而,今天早上,我们遇到了更严重的问题。它始于:
“System.ComponentModel.Win32Exception:远程主机强制关闭了现有的连接”
这发生在机器人(Google、Baidu、AhrefsBot和Wiseguys.nl)正在索引该站点的时候。我得到了其中一个或多个错误。然后我得到了:
“System.Data.SqlClient.SqlException:服务遇到处理您请求的错误。请再试一次。错误代码40143。当前命令发生了严重错误。如果有任何结果,则应将其丢弃。”
这是在一个ExecuteReader阶段发生的。
10分钟后,真正的问题出现了 - 这意味着没有人可以登录管理界面,但是当我测试它时,Azure托管的网站似乎还好,尽管机器人仍在引发错误。问题是:
“System.ComponentModel.Win32Exception:等待操作超时”
这种情况持续了大约一个小时,随机连接时断时续。然后我又遇到了另一个问题:
我一直遇到随机错误,持续几秒钟,然后又恢复正常,例如:
“从服务器接收结果时发生传输级错误。(提供程序:TCP Provider,错误:0-远程主机强制关闭了现有的连接。)”
然而,今天早上,我们遇到了更严重的问题。它始于:
“System.ComponentModel.Win32Exception:远程主机强制关闭了现有的连接”
这发生在机器人(Google、Baidu、AhrefsBot和Wiseguys.nl)正在索引该站点的时候。我得到了其中一个或多个错误。然后我得到了:
“System.Data.SqlClient.SqlException:服务遇到处理您请求的错误。请再试一次。错误代码40143。当前命令发生了严重错误。如果有任何结果,则应将其丢弃。”
这是在一个ExecuteReader阶段发生的。
10分钟后,真正的问题出现了 - 这意味着没有人可以登录管理界面,但是当我测试它时,Azure托管的网站似乎还好,尽管机器人仍在引发错误。问题是:
“System.ComponentModel.Win32Exception:等待操作超时”
这种情况持续了大约一个小时,随机连接时断时续。然后我又遇到了另一个问题:
System.Data.SqlClient.SqlException:资源 ID: 1。 数据库的请求限制为180,已达到此限制。请参见'http://go.microsoft.com/fwlink/?LinkId=267637'以获取帮助。
这种情况在过去一小时内时有时无地发生 - 主要是用于工作角色。然后我试图找出是什么占用了所有这些请求,我找到了这个命令:
SELECT * FROM sys.dm_exec_requests
每次我重复运行它时,它只返回1或2个请求。
所以我的问题是: 1)是否还有其他人经常(每天一两次)暂时从托管在Azure上的服务器断开连接? 2)以上事件列表是否指示特定问题?这可能发生在许多管理员同时登录时。 3)当我收到180个限制消息时,如何更好地调试对数据库的请求数量?
提前感谢。