2013-08-02 70 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