,我發現了異常基礎提供失敗的ConnectionString的(| DataDirectory目錄|和的LocalDB)
基礎提供失敗的ConnectionString的。關鍵「attachdbfilename」
一個Windows 7家庭高級虛擬機上
與內部異常
值無效,因爲我試圖部署和調試應用程序。
但是,在我的開發機器上,應用程序剛啓動時沒有問題。
連接字符串:
<add name="AssetsLocalDBEntities" connectionString="metadata=res://*/AssetsLocalDB.csdl|res://*/AssetsLocalDB.ssdl|res://*/AssetsLocalDB.msl;provider=System.Data.SqlClient;provider connection string="data source=(localdb)\v11.0;attachdbfilename=|DataDirectory|\AssetDatabase.mdf;initial catalog=AssetDBSource;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
史蒂夫倫斯已經提到,在連接字符串中包含本主題中的垃圾:尚未 The underlying provider failed on ConnectionString
,如馬克西姆Gueivandov答覆說,這應該有效的連接字符串,因爲它直接由EntityFramework的edmx設計器生成。 至少,我相信它是有效的,因爲它在開發機器上工作。
另外在另一個主題(Entity Framework - The underlying provider failed on ConnectionString)中,接受的答案是刪除&「並將它們替換爲\ ",因爲該字符串是c#代碼中的一個字面值,但我仍然在xml中有我的連接字符串,所以&「不能簡單地被替換。 on-connectionstring
安裝在虛擬機上的.NET版本是4.0.30319,MsSQL Server Express LocalDB是11.0.2318.0,所以我相信它們都是最新的。
編輯:如果我刪除「| DataDirectory |」從連接字符串讓我的開發機上出現以下錯誤:
無法將文件「AssetDatabase.mdf」附加數據庫「AssetDBSource」。
所以我也去掉「初始目錄= AssetDBSource」我也得到
嘗試附加文件AssetDatabase.mdf失敗自動命名的數據庫。具有相同名稱的數據庫存在,或指定的文件無法打開,或位於UNC共享上。
我可以使用emagine這是因爲它不知道在哪裏看?所以,我提供了完整的路徑(C:.. \ AssetDatabase.mdf),它的工作原理。
因此問題的其餘部分是:我如何獲得與LocalDB一起工作的相對路徑?
我試過安裝4.0.2更新(KB2544514),但我得到「KB2544514不適用,或被您計算機上的其他條件阻止。」所以我猜想它已經安裝好了。 另一方面安裝4.0.3(KB2600211),會看到什麼讓我受益。 4.5目前還不是一個選項,因爲我使用的一些第三方庫不支持4.5。 –
可能很愚蠢的問題,但是......你有沒有得到正確的包裝?如果你有64位操作系統,你需要獲得「* -x86-x64.exe」。也許你已經安裝了一些阻止4.0.2更新的.NET 4修補程序。最後,也許機器處於不良狀態,會阻止任何.NET更新,例如Windows安裝程序(MSI)內部數據庫被損壞時。 –
我還更新了答案,並附加了一個選項,以確認Update 4.0.2或更新版本是否已安裝,然後再嘗試安裝它。 –