2012-03-07 70 views
1

我有兩個在本地運行的visual studio 2010項目。一個是雲計劃,除了連接本地SQL Express外,還連接到天藍色表(開發)存儲,另一個不是雲計劃。這兩個項目都嘗試通過xsd生成的類似代碼連接到本地SQL Express數據庫,並通過數據綁定網格直接在aspx中連接。非雲項目連接正常,但云項目因常見錯誤而失敗:連接到SQL Express的問題

「嘗試爲文件C:\ Users ... mdf附加自動命名數據庫失敗。具有相同名稱的數據庫存在或指定的文件無法打開,或者它位於UNC共享上。「

兩個項目都使用相同的連接字符串在Web.config文件:

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf; 
    Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

在從雲項目,我可以連接到Express數據庫就好了VS2010服務器資源管理器,但是當項目運行時,它無法連接。雲項目還通過Web.config中的另一個連接字符串連接到SQL Azure遠程雲數據庫,並且該連接正常工作。

我看到MS支持文章:http://support.microsoft.com/kb/2002980,並認爲可能項目最初是使用不同版本的VS創建的,可能會導致我的問題,所以我對ASP.net 4.0應用程序池進行了建議的IIS更改,但無濟於事。

由於SQL Express連接字符串在一個項目中工作,而不在另一個項目中,所以我很難過。是否還有其他配置元素或與失敗項目相關的項目是我應該關注的雲項目?

+0

連接字符串未顯示: ejm 2012-03-07 20:46:28

+0

我讓連接字符串顯示出來。爲了突出顯示代碼示例(尤其是可能被解釋爲HTML的示例),請使用編輯器工具欄上的代碼按鈕「{}」。 – 2012-03-07 21:03:29

回答

1

您是否將數據庫附加到實際的SQL Server Express實例?如果是這樣,請刪除所有AttachDbFilenameUser Instance廢話。爲了簡單和一致,你可以在本地使用SQL認證。所以,你應該有類似:

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName; 
    User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" /> 
+0

這聽起來像一個愚蠢的問題,但用戶名和密碼是什麼?我知道他們是爲我的SQL Azure帳戶,但是當我連接到本地數據庫SSMS顯示PCName \用戶沒有密碼。當我嘗試這些時,連接失敗。 – ejm 2012-03-07 22:40:40

+0

如果您創建了本地SQL用戶名和密碼,則可以使用它。否則,你應該只保留'Integrated Security = True'部分來代替上面提到的User ID和Password部分。我只是建議使用SQL auth來保持它與Azure的一致性,所以如果你希望你*可以*創建一個SQL用戶名和密碼,並擁有足夠的應用程序權限。您甚至可以使其與您的Azure帳戶相匹配,以便只需更改服務器名稱即可。 – 2012-03-07 22:44:22

+0

謝謝。我有一個奇怪的混合的SQL Server 2008 R2,同時仍然使用一些SQL Express,因此必須將連接字符串數據源指定爲「(本地)」。 – ejm 2012-03-08 01:31:00

2

你tyring同時運行兩個項目(在同一時間 - 多啓動項目)。如果是這樣,這確實是SQL Express的常見問題。當您在VS Server Explorer中打開數據庫時也經常發生。如果您有多個應用程序訪問同一個數據庫,我建議您手動將數據庫附加到SQL Server Express中。你可以通過:

  1. 打開SSMS(Sql Server Management Studio),連接到你本地的SQL Express實例。
  2. 導航到數據庫分支
  3. 右鍵 - >附加數據庫
  4. 瀏覽到做你的MDF文件

現在改變你的連接到Aaron建議的連接。一般來說,我建議現在使用AttachDbFilename和UserInstance,但直接附加數據庫並將其與SQL Server的常規獨立實例一起使用。節省很多頭痛。

+1

更不用說,整個用戶實例功能已被棄用... – 2012-03-07 21:10:36

+0

謝謝!我掙扎了一點點,讓SSMS找到mdf文件(它無法導航我的整個目錄樹),但我將文件移到了我的SQL Server DATA目錄,一切正常。 – ejm 2012-03-08 01:20:43