2013-04-26 51 views
1

在我的第一個MVC 4應用程序中,我在代碼中遇到以下錯誤。連接字符串錯誤。無法找到請求的.Net Framework數據提供程序

WebSecurity.InitializeDatabaseConnection("fousuEntities", "usertable", "UserID", "UserCode", autoCreateTables: true); 

在我的配置文件我有以下條目,

<add name="fousuEntities" connectionString="metadata=res://*/fousutable.csdl|res://*/fousutable.ssdl|res://*/fousutable.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=user;password=pwd;database=fousutable&quot;" providerName="System.Data.EntityClient" /> 

請幫我什麼,我在此代碼錯過了什麼?

  • 的Visual Studio 2010 SP1
  • MVC 4
  • 嘗試使用simplemembership提供商
  • 安裝實體框架5.0
  • 的.NET Framework 4.0
  • 數據庫MySQL 5.1中

更新1:

錯誤詳細信息:

無法找到請求的.Net Framework數據提供程序。它可能沒有安裝。

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.ArgumentException:無法找到請求的.Net Framework數據提供程序。它可能沒有安裝。

Line 32:      using (var context = new UsersContext()) 
Line 33:      { 
Line 34:       if (!context.Database.Exists()) 
Line 35:       { 
Line 36:        // Create the SimpleMembership database without  Entity Framework migration schema 

更新2:

嗯,我能得到通過改變web.config中的條目驅除掉上面的錯誤。如下所示,但最終得到另一個錯誤。

<add name="fousuEntities" connectionString="Server=MySQL; Database=fousutable; uid=user; pwd=pwd;" providerName="MySql.Data.MySqlClient"/> 

並補充System.Data下一個條目,

<system.data> 
<DbProviderFactories> 
    <remove invariant="MySql.Data.MySqlClient" /> 
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
</DbProviderFactories> 
</system.data> 

現在,新的錯誤,我得到的是,

異常已通過調用的目標引發異常。爲線LazyInitializer,

public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     // Ensure ASP.NET Simple Membership is initialized only once per app start 
     LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock); 
    } 

的InnerException我喜歡,的細節之後的「ASP.NET簡單的會員數據庫無法初始化。」

+0

什麼錯誤?... – Drewman 2013-04-26 11:16:55

+0

@Drewman對不起,添加錯誤的詳細信息! – Fousana 2013-04-26 11:31:54

+0

@Drewman謝謝我在web.config中解決了以下代碼更改的問題,編輯爲UPDATE 2,但遇到了另一個錯誤,請參閱編輯的版本 – Fousana 2013-04-26 11:39:09

回答

0

檢查連接字符串的名稱。很可能你已經從「DefaultConnection」更改爲任何其他值,並且確定您已在該行的SimpleMembershipInitializer中正確更改了它。

WebSecurity。InitializeDatabaseConnection(「MyNewConnectionString」,「Users」,「UserId」,「UserName」,autoCreateTables:true);

但是你要知道,在你的AccountModels.cs文件,你有一個UsersContext,你必須更新在構造函數中:

public UsersContext() : base("MyNewConnectionString") 
    { 
    } 

否則,它會繼續嘗試找到不存在的「DefaultConnection」。這可能是它失敗的原因。

相關問題