我有一个最近推出的白标网站(同一网站的多个版本)。目前还没有大量的流量——主要是机器人,但每天可能有 800 个用户。除了位于非 Azure 服务器上的管理面板外,它还托管在 Azure 上,并带有一个 Azure 数据库。两个站点都连接到同一个 Azure 数据库。还有一些工作人员角色正在运行以处理数据 - 99% 的时间他们什么都不做,但他们会定期检查。
我总是遇到持续几秒钟的随机错误,然后又好了,例如:
从服务器接收结果时发生传输级错误。(提供者:TCP 提供者,错误:0 - 现有连接被远程主机强行关闭。)
然而,今天早上,我们遇到了一个更严重的问题。它开始于:
System.ComponentModel.Win32Exception:现有连接被远程主机强行关闭
这发生在机器人(谷歌、百度、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 ”以获得帮助。
这在最后一个小时时断时续地发生 - 主要是工人角色。然后我试图找出是什么占用了所有这些请求,我发现了这个命令:
选择 * FROM sys.dm_exec_requests
当我一遍又一遍地运行它时,它只返回 1 或 2 个请求。
所以我的问题是:1)其他人是否经历过与 Azure 上托管的服务器的相对定期(一天一次,可能是两次)暂时断开连接?2) 上述事件列表是否表明存在特定问题?当许多管理员同时登录时,这一切都可能发生。3)当我收到180限制消息时,如何更好地调试对数据库的请求数?
提前致谢。