2013-04-26 44 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”。这可能是它失败的原因。

相关问题