ASP.如果使用实体连接字符串(与SQL连接字符串一起工作),NET MVC4简单成员关系无法初始化



我正在开发ASP。. NET MVC4应用程序与实体框架5,我使用模型第一模式。

但是,如果使用设计器生成的连接字符串,则简单成员关系将抛出以下错误:

    ......
  InnerException: System.InvalidOperationException
   HResult=-2146233079
   Message=The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588
   Source=STD
   StackTrace:
        at SistemTempahanDewan.Filters.InitializeSimpleMembershipAttribute.SimpleMembershipInitializer..ctor() in c:UsersOrangDocumentsVisual Studio 2012ProjectsSTDSTDFiltersInitializeSimpleMembershipAttribute.cs:line 45
   InnerException: System.ArgumentException
        HResult=-2147024809
        Message=Unable to find the requested .Net Framework Data Provider.  It may not be installed.
        Source=System.Data
        StackTrace:
             at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
             at WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(String connectionString)
    ....

设计器生成的连接字符串(不起作用):

<add name="STD" connectionString="metadata=res://*/Models.STD.csdl|res://*/Models.STD.ssdl|res://*/Models.STD.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.SQLEXPRESS;initial catalog=STD;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

连接字符串我手动添加(将工作):

<add name="STD" providerName="System.Data.SqlClient" connectionString="Data Source=.SQLEXPRESS;Initial Catalog=STD;Integrated Security=True;MultipleActiveResultSets=True" />

是的,simplemmembership只适用于SQL Server连接字符串,所以你需要在你的web.config中加入这样一个条目。不理想,但它像你说的那样工作…

这可能是你的答案:使用EF模型优先的simplememmembership

Jon Galloway的文章是一个很好的关于simplememmembership的信息资源,如果你还没有看到它:http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx

最新更新