2013-03-09 9 views
7

Pracuję z aplikacją ASP.NET MVC4 z Entity Framework 5 i używam trybu Model pierwszy.Proste członkostwo ASP.NET MVC4 nie można zainicjować, jeśli używasz ciągu połączenia jednostki (działa z ciągiem połączenia SQL)

Jednak Proste Członkostwo rzuci się następujący błąd, gdy używam ciąg połączenia generowane przez autora:

...... 
    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) 
    .... 

ciąg połączenia generowanego przez projektanta (nie działa):

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

Ciąg połączenia dodam ręcznie (zadziała):

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

Czy jest zdecydowanie odniesienie do EF i System.Data.Entity w zespole? –

+0

@NeilThompson działa ze wszystkimi pozostałymi danymi (wyświetl, edytuj, utwórz, usuń). Tylko proste członkostwo nie. –

Odpowiedz

5

Tak, Simp Program leMembership działa tylko z ciągami połączenia programu SQL Server, więc potrzebujesz takiego wpisu w swoim pliku web.config. Nie jest idealny, ale działa jak mówisz ...

To może być odpowiedź: artykuł Using SimpleMembership with EF model-first

Jon Galloway jest doskonałym źródłem informacji o SimpleMembership, jeśli jeszcze tego nie widział go: 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

+0

Czy jest to zgodne z projektem lub błędem? Na razie zachowam 2 ciągi połączeń ze względu na brak jakiegokolwiek prostszego rozwiązania. –

+0

Osobiście uważam, że obecnie nie jest on obsługiwany w wyniku "spotkania się" różnych technologii (patrz tutaj: http://odetocode.com/Blogs/scott/archive/2012/09/23/perils-of- the-mvc4-accountcontroller.aspx). Mam nadzieję, że przyjdzie z przyszłym wydaniem! –

+1

Ulżyło mi, że wiem, że nie robię czegoś złego. Mam nadzieję, że uda się to wygładzić w następnej wersji. Dzięki za linki! –

Powiązane problemy