2013-08-02 30 views
3

我一直在使用Visual Studio 2012在c#中编写程序。此程序会对数据库进行多次调用,并且所有内容一直运行良好;从来不必为了让它运行而弄乱任何配置。几天前,我收到一台新电脑。在完成所有设置之后,我试图运行我的程序,但它在数据库调用中保持失败,因为它超时。我删除了旧的连接字符串,并尝试连接到我们的备份数据库。使用服务器资源管理器,我创建了一个新的连接;填写完所有信息后,我使用了测试连接按钮,并被告知测试成功。从服务器资源管理器,我然后尝试打开文件夹,但它没有工作。大约30秒后,出现以下错误: 无法检索此请求的数据。 超出锁定请求超时时间。无法连接到SQL Server:无法检索此请求的数据

我尝试刷新连接数次,重新启动数据库,重新启动Visual Studio,甚至重新启动我的电脑。我试着连接回原始数据库并得到相同的结果,所以我确定它是计算机特定的,并且与数据库无关。我已经验证了我登录的Windows帐户是一个系统管理员。我们使用SQL Server身份验证,并且Visual Studio试图连接的帐户也是一个系统管理员。我完全禁用了我的防火墙。我在网上搜索了一个答案,但唯一可以找到类似于我的错误消息的情况与ASP非常具体相关。我不明白的(以及难以搜索的)是能够成功连接到数据库,但无法检索任何数据。任何帮助将不胜感激!

附加信息: 我在我的项目中使用LINQ to SQL类。目标框架= 4.5

更新: 我将答案标记为已接受,但我会在此处详细说明以防其他人遇到同样的问题。有两个开放的进程,其中一个属于我,这是我认为允许测试连接工作。杀死所有打开的进程后,我根本无法连接回数据库。然后我重新启动了数据库服务(这是在我们的局域网上,不是本地的),并且工作。我不再认为这与新电脑有任何关系;它只是同时发生了无论是什么原因造成的问题,并导致我去兔子洞。

+0

你能证明你是如何连接到数据库中关于事物的旧机器上是如何工作的..还哪里数据库驻留..?在你的本地机器上??如果是的话,你设置SQL Server的新实例以使用默认端口..?如果是这样的话,你需要改变你的连接字符串,在连接字符串的末尾使用':1486'包含那个端口号#显示你的代码以及配置文件connectionString将有助于 – MethodMan

+0

http:// social .msdn.microsoft.com/Forums/sqlserver/en-US/50b9e7dd-40b2-4b6c-9e63-0263c7eac4c8 /无法访问数据库 - 试试这个链接 –

+0

你可以显示你正在使用的代码连接到数据库/设置连接字符串超时.. – MethodMan

回答

1

A very fine answer by a gentleman here 它的复制粘贴,以清除空气我只是想帮助我们的朋友.Original帖子可以在上面的链接找到。

  1. 连接到服务器的违例的数据库
  2. 运行查询主数据库下面找到什么交易是开放
  3. 杀死被阻挡了系统SPIDS(1〜50)
  4. 任何交易

select * from master..sysprocesses where blocked <> 0

去 sp_who2 去

- 找到阻断SPIDS,然后检查以下开放跨,0以外的任何值意味着一个开放的TRAN

SELECT distinct(open_tran) FROM master..SYSPROCESSES WHERE SPID=<suspect SPID> 

- 现在杀了它! kill

只要杀死结束,数据库就会恢复正常。没有服务重新启动,不需要启动。

通过 - MauricioRPP