我们的网站今天开始疯狂超时。我们所有的客户都发现它无法使用。我们似乎可以追踪到的唯一潜在问题就是这个:
SQL_HANDLE_DBC 上的 SQLAllocHandle 失败错误 ASP 描述错误类别 Microsoft OLE DB Provider for ODBC Drivers
我不知道这是什么意思,也不知道该如何修复。有人遇到过这个错误吗?
目前,您可以登录我们的网站,但是一旦您去做其他事情,您就会发现自己被注销了或者什么都没发生。我们有很多 Ajax 操作,所以“什么都没发生”可能是因为 Ajax 页面由于注销而无法正确加载,因此没有向用户显示任何内容。
就像我说的,我很困惑。有人能对这个错误给出建议吗?
编辑
我意识到这不一定是编程问题,但我们是一家小型初创公司,昨天才开始讨论如何让备份服务器运行起来。显然我们谈论得太晚了。我们没有数据库管理员,只有 2 名中级程序员,他们竭尽全力让客户满意。所以,如果您有任何帮助,请提供,但请不要立即关闭我的问题。
编辑2
原来我们的服务器上运行着一个叫做“ServerMask”的东西,它使得我们的 IIS 服务器在外界看来就像 Apache 一样。关闭它解决了我们的问题。仍然不知道它为什么会搞砸,但显然这就是问题所在。
感谢所有提供帮助的人。
答案1
如果你遇到了紧急和实时的问题,并且这些问题正在影响你的业务现在,并且您没有内部技术支持(或者如果您有,而他们却束手无策),我建议您向 Microsoft 技术支持部门提出案例。如果您拥有某种类型的 MSDN 许可证,您可能会获得几次免费的支持电话,否则您将不得不用信用卡付款,上次我不得不支付 250 美元。
该号码应为 1 800 642 7676(从我显示器远端的“以防万一”贴纸上获取的,我认为它根本不会经常更改)。我过去使用它们时取得了不错的效果;它们可能快也可能慢,但会非常彻底。
答案2
听起来您有些资源快用完了。请改用 MSSQL OleDB 驱动程序,而不是 ODBC Oledb 提供程序。这可能无法解决问题,但可能会引发更多描述性错误。检查经典的资源争用问题,例如连接池。发布更多详细信息。我们可以修复它!
答案3
尝试这个连接字符串:
<connectionStrings>
<add name="ConnString"
connectionString="Data Source=IPAddress\InstanceIfNeeded;
Initial Catalog=DBName;
User ID=YourID;
Password=YourPWD;
Max Pool Size=100;
Connection Timeout=20;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
它将切换到使用较新的 OleDB 驱动程序并确保您的池大小和超时正确。当然,您需要输入数据源地址(IP 地址或服务器名称)、数据库名称和登录凭据。我假设这里使用 SQL 登录,但您也可以使用 Windows 凭据。
答案4
听起来像是 DBA 的工作。您的数据库是否已启动并可用?spid 是否相互阻塞并超时?您是否有夜间维护工作(备份、DBCC、重新索引等)运行时间很长并且导致今天出现问题?