我有一个网站,这是我最近推出的白色标签(同一网站的多个版本).目前还没有大量的流量 - 主要是机器人,但每天可能有800个用户.除了位于非天蓝服务器上的管理面板之外,它还在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 ".
这发生在最后一小时的开关 - 主要是工人角色.然后我试图找出占用所有这些请求的内容,我发现了这个命令:
SELECT*FROM sys.dm_exec_requests
当我一遍又一遍地运行它时,它只返回了1或2个请求.
所以我的问题是:1)是否有其他人经常相对定期(一次,可能一天两次)与Azure上托管的服务器暂时断开连接?2)上述事件列表是否表明存在特定问题?当大量管理员一次登录时,可能都会发生这种情况.3)当我收到180限制消息时,如何更好地调试对数据库的请求数?
提前致谢.