2013-03-11 67 views
7

我在包管理器控制檯中更新我的數據庫時出現錯誤,這裏是我的配置類和web配置 角色管理器功能尚未啓用。 請幫我角色管理器功能尚未啓用。 MVC 4

MY配置類

namespace TechFactorsLMSV2.Migrations 
{ 
using System; 
using System.Data.Entity; 
using System.Data.Entity.Migrations; 
using System.Linq; 
using System.Web.Security; 
using TechFactorsLMSV2.Models; 
using WebMatrix.WebData; 

internal sealed class Configuration : DbMigrationsConfiguration<TechFactorsLMSV2.Models.LMSDBContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
    } 

    protected override void Seed(TechFactorsLMSV2.Models.LMSDBContext context) 
    { 
     context.Schools.AddOrUpdate(d => d.SchoolName, 
       new School() { SchoolName = "School 1" }, 
       new School() { SchoolName = "School 2" }, 
       new School() { SchoolName = "School 3" } 
       ); 

     SeedMembership(); 
    } 

    private void SeedMembership() 
    { 
     WebSecurity.InitializeDatabaseConnection("DefaultConnection", 
      "UserProfile", "UserId", "UserName", autoCreateTables: true); 
     var roles = (SimpleRoleProvider)Roles.Provider; 
     var membership = (SimpleMembershipProvider)Membership.Provider; 

     if (!roles.RoleExists("Admin")) 
     { 
      roles.CreateRole("Admin"); 
     } 
     if (membership.GetUser("kadadmin", false) == null) 
     { 
      membership.CreateUserAndAccount("kadadmin", "password"); 
     } 
     if (!roles.GetRolesForUser("kadadmin").Contains("Admin")) 
     { 
      roles.AddUsersToRoles(new[] { "sallen" }, new[] { "admin" }); 
     } 
    } 
} 
} 

MY WEB CONFIG

<?xml version="1.0"?> 

<configuration> 
<configSections> 
<sectionGroup name="system.web.webPages.razor"  type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
</sectionGroup> 
</configSections> 
<connectionStrings> 
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-TechFactorsLMSV2;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\TechFactorsLMSV2.mdf" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <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" /> 
    </namespaces> 
</pages> 



</system.web.webPages.razor> 

<appSettings> 
<add key="webpages:Enabled" value="false" /> 
</appSettings> 



<system.web> 
<httpHandlers> 
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> 
</httpHandlers> 

<!-- 
    Enabling request validation in view pages would cause validation to occur 
    after the input has already been processed by the controller. By default 
    MVC performs request validation before a controller processes the input. 
    To change this behavior apply the ValidateInputAttribute to a 
    controller or action. 
--> 
<pages 
    validateRequest="false" 
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <controls> 
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
</pages> 



<roleManager enabled="true" defaultProvider="simple"> 
    <providers> 
    <clear/> 
    <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, 
         WebMatrix.WebData"/> 
    </providers> 
</roleManager> 
<membership defaultProvider="simple"> 
    <providers> 
    <clear/> 
    <add name="simple" type="WebMatrix.WebData.SimpleMembershipProvider, 
         WebMatrix.WebData"/> 
    </providers> 
</membership> 

</system.web> 

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 

<handlers> 
    <remove name="BlockViewHandler"/> 
    <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
</handlers> 

回答

10

您需要根據本節的System.Web添加到Web.config

<roleManager enabled="true" defaultProvider="SimpleRoleProvider"> 
     <providers> 
     <clear/> 
     <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/> 
     </providers> 
    </roleManager> 
    <membership defaultProvider="SimpleMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="SimpleMembershipProvider" 
      type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"/> 
     </providers> 
    </membership> 
+0

現在它說無法加載文件或程序集'WebMatrix.WebData'或其依賴項之一。該系統找不到指定的文件。 – dnxit 2013-05-03 23:23:08

+2

添加對WebMatrix.WebData程序集的引用 – 2013-05-20 10:15:46

+0

查看CopyLocal設置爲true。 – StefanG 2014-09-24 08:13:15