Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET MVC4 Simple Membership fails to initialize if using Entity Connection String (works with SQL connection string)

I am developing ASP.NET MVC4 application with Entity Framework 5, and I am using Model First mode.

However Simple Membership will throw the following error if I am using the connection string generated by the designer:

    ......
  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:\Users\Orang\Documents\Visual Studio 2012\Projects\STD\STD\Filters\InitializeSimpleMembershipAttribute.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)
    ....

Connection string generated by the designer (will not work):

<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" />

Connection string I add manually (will work):

<add name="STD" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=STD;Integrated Security=True;MultipleActiveResultSets=True" />
like image 735
Rosdi Kasim Avatar asked Mar 09 '13 11:03

Rosdi Kasim


1 Answers

Yes, SimpleMembership only works with SQL Server connection strings, so you need such an entry in your web.config. Not ideal, but it works as you say...

This may be your answer: Using SimpleMembership with EF model-first

Jon Galloway's article is an excellent resource of information about SimpleMembership, if you haven't already seen it: 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

like image 98
Alistair Findlay Avatar answered Oct 20 '22 04:10

Alistair Findlay