我使用Visual Studio 2012在c#中编写了一个程序。这个程序对数据库进行了大量调用,而且一切都运行得很好;永远不必乱用任何配置来运行它。几天前,我收到了一台新电脑。设置好所有内容之后,我试图运行我的程序但它仍然在数据库调用上失败,因为它已超时。我删除了旧的连接字符串,并尝试连接到我们的备份数据库。使用Server Explorer,我创建了一个新连接;在填写所有信息后,我使用测试连接按钮,并告知测试成功。从服务器资源管理器,我然后尝试打开 Tables 文件夹,但它不起作用。大约30秒后,我收到以下错误: 无法检索此请求的数据。 锁定请求超时时间已超过。
我尝试多次刷新连接,重新启动数据库,重新启动visual studio,甚至重新启动计算机。我尝试连接回原始数据库并获得相同的结果,所以我确定它是特定于计算机的并且与数据库无关。我已经验证了我登录的Windows帐户是一个系统管理员。我们使用SQL Server身份验证,Visual Studio尝试连接的帐户也是一个sysadmin。我也完全禁用了我的防火墙。我在互联网上搜索了一些答案,但是我能找到类似于我的错误消息的唯一情况与ASP有很大关系。我不明白(以及难以搜索的)是能够成功连接到数据库,但无法检索任何数据。任何帮助将不胜感激!
其他信息: 我在我的项目中使用LINQ to SQL类。目标框架= 4.5
更新: 我将答案标记为已接受,但我会详细说明,以防其他任何人遇到同样的问题。有两个开放的进程,其中一个属于我,这是我假设允许测试连接工作。在杀死所有打开的进程后,我根本无法连接回数据库。然后我重新启动了数据库服务(在我们的局域网上,而不是在本地),这是有效的。我不再认为它与新电脑有任何关系;它只是同时发生在导致问题的任何问题上,导致我走下兔子洞。
答案 0 :(得分:1)
A very fine answer by a gentleman here 它是一个复制粘贴所以清除空气我只是想帮助我们的朋友。原始帖子可以在上面的链接找到。
select * from master..sysprocesses where blocked<> 0
去 sp_who2 去
- 找到被阻止的SPIDS,然后检查下面的开放式转换,0以外的任何值表示开放式转换
SELECT distinct(open_tran) FROM master..SYSPROCESSES WHERE SPID=<suspect SPID>
- 现在杀了它! 杀了
一旦kill结束,数据库将恢复正常。无需重启服务,无需启动。
By - MauricioRPP