我知道已經有很多關於此錯誤的其他帖子,但沒有已經能夠擺脫任何燈光或對我的問題有所幫助。我使用的是直接連接到SqlExpress,所以沒有特殊的Oracle或MySQL數據庫或任何東西。這似乎應該像手套一樣適合。「無法找到所需的.Net Framework數據提供程序,可能未安裝它。」
所以情況是這樣的,我已經創建了一個解決方案,包括項目屈指可數;存儲庫,數據(EF5.0),實用程序,測試項目和MVC Web應用程序。我們的目標是通過使用EF5以及測試項目和MVC應用程序中的一些存儲庫,通過Repositories項目中的存儲庫通過Data類訪問基礎SQL Express數據庫。
測試項目的工作,並能沒有問題,訪問和更新數據庫。
但是,MVC Web項目正在拋出「無法找到請求的.Net Framework數據提供程序,它可能未安裝。」錯誤,我不明白,因爲它使用與測試項目相同的連接字符串。
[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1426271
WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(String connectionString) +64
WebMatrix.Data.<>c__DisplayClass15.<OpenConnectionStringInternal>b__14() +16
WebMatrix.Data.Database.get_Connection() +19
WebMatrix.Data.Database.EnsureConnectionOpen() +12
WebMatrix.Data.Database.QueryValue(String commandText, Object[] args) +63
WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters) +14
WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String userName) +232
WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable() +85
我有...
- 註冊在web.config中的System.Data.SqlClient的。
- 確認System.Data的註冊版本(2.0.0.0)在GAC中存在this article
- 確保連接字符串中沒有拼寫錯誤。
下面是我在web.config中......
<connectionStrings>
<add name="DBCatalogContext"
connectionString="metadata=res://*/DBCatalog.csdl|
res://*/DBCatalog.ssdl|
res://*/DBCatalog.msl;
provider=System.Data.SqlClient;
provider connection string="data source=.\SQLEXPRESS;
initial catalog=DBCatalog;
integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="SqlClient Data Provider"
invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory,
System.Data,
Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</DbProviderFactories>
</system.data>
我看到沒有任何意義,我唯一的一點是,當我選擇「System.Data」參考在「參考」文件夾,看看它說,這是4.0.0.0版本的屬性,但是當我在配置站點的「DbProviderFactories」部分中更改版本我仍然得到錯誤。另外我甚至都沒有在Test項目中看到這個庫的引用。
我相信,這是一個疏忽或者說我缺少一些配置設置,但我不知道還有什麼地方看這一點,所以任何幫助,將不勝感激。
感謝, 摹