2012-09-13 19 views
8

मैं वेब के लिए माइक्रोसॉफ्ट विजुअल स्टूडियो एक्सप्रेस 2012 का उपयोग कर एक एमवीसी 4 वेबसाइट लिख रहा हूं। जब भी मैं पैकेज प्रबंधक कंसोल में "अपडेट-डाटाबेस" चलाने के लिए, निम्न अपवाद होती है:"सदस्यता। प्रदाता विस्तारितमेम्बरशिपप्रोवाइडर का उदाहरण होना चाहिए"

protected override void Seed(GNSystem.Models.DataContext context) 
    { 
     context.Forums.AddOrUpdate(
         new Forum { ForumName = "Hello" }, 
         new Forum { ForumName = "World" }, 
         new Forum { ForumName = "!" } 
         ); 
     context.UserProfiles.Add(new UserAccount { UserName = "Gilad", EMail = "[email protected]" }); 
     WebSecurity.CreateUserAndAccount("Gilad", "123456"); 
     WebSecurity.Login("Gilad", "123456"); 
     context.Threads.AddOrUpdate(
      new Thread { Subject = "FirstThread", Content = "Awesome Content", ForumID = 1, UserID = 1 }, 
      new Thread { Subject = "SecondThread", Content = "Awesome Content", ForumID = 1, UserID = 1 } 
      ); 
    } 

मैं solutions के लिए खोज की है और में निम्नलिखित निर्देश कहा:

 
To call this method, the "Membership.Provider" property must be an instance 
of "ExtendedMembershipProvider". 

यह मेरा बीज विधि है Web.config फ़ाइल:

<add key="enableSimpleMembership" value="true" /> 

लेकिन अपवाद को फिर भी फेंक दिया गया है।

इसका क्या कारण है? संपादित करें 1:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-GNSystem-20120913165926;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-GNSystem-20120913165926.mdf" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="enableSimpleMembership" value="true" /> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" /> 
    </authentication> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
</configuration> 
+0

क्या आपके पास कस्टम सदस्यता प्रदाता है? –

+0

मुझे नहीं पता कि। –

+0

क्या आपके पास अपने web.config में सदस्यता अनुभाग है? इसके साथ अपना प्रश्न अपडेट करें। –

उत्तर

10

इससे पहले कि आप WebSecurity.CreateUserAndAccount("Gilad", "123456"); SimpleMembership उपयोग कर सकते हैं प्रारंभ किया जाना चाहिए। यह आम तौर पर [InitializeSimpleMembership] विशेषता के साथ खाता नियंत्रक पर किया जाता है, लेकिन चूंकि आप इन तरीकों को अपने बीज में कॉल करने का प्रयास कर रहे हैं, इसलिए आपको इसे एक और तरीके से शुरू करने की आवश्यकता होगी।

+0

बहुत बहुत धन्यवाद :) –

3
protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context) 
{ 
    context.Departments.AddOrUpdate(d => d.Name, 
       new Department() { Name = "Engineering" }, 
       new Department() { Name = "Sales" }, 
       new Department() { Name = "Shipping" }, 
       new Department() { Name = "Human Resources" }); 

    if (!Roles.RoleExists("Admin")) 
    { 
    Roles.CreateRole("Admin"); 
    } 

    if (Membership.GetUser("wayne") == null) 
    { 
    Membership.CreateUser("wayne", "[email protected]"); 
    Roles.AddUserToRole("wayne", "Admin"); 
    } 
0

कृपया जांचें कि इस एप्लिकेशन में आप जिस सदस्यता प्रदाता का उपयोग कर रहे हैं वह सदस्यता प्रदाता या विस्तारितमेम्बरशिपप्रोवाइडर से प्राप्त होता है। सुनिश्चित करें कि यह विस्तारित MembershipProvider वर्ग से विरासत में है।

संबंधित मुद्दे