Kyl*_*ers 20 asp.net asp.net-mvc entity-framework asp.net-mvc-4 simplemembership
我用VS2012开始了一个新的互联网项目,我试图重新调整我的项目,我似乎无法保持SimpleMemberhsipProvider的工作.基本上,我所做的就是将模型对象与其他几个项目一起移动到核心项目中.我已经实现了Ninject,并试图通过使用存储库模式来获取我的数据来抽象实体.我真的不觉得我对当前的项目做了很多改变,但出于某种原因,当我启动应用程序时,我得到:
{"尚未启用角色管理器功能."}
框架提供的ActionFilter是在以下情况下引发错误的位置:
WebSecurity.InitializeDatabaseConnection("DefaultConnection","UserProfile","Id","UserName",autoCreateTables:true);
叫做.
这是一些堆栈跟踪:
[ProviderException:尚未启用角色管理器功能.] System.Web.Security.Roles.EnsureEnabled()+
9561885
System.Web.Security.Roles.get_Provider()+8
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName,String userIdColumn,String userNameColumn,Boolean autoCreateTables)+104
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName,String userTableName,String userIdColumn,String userNameColumn,Boolean autoCreateTables)+100
InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer .. C:\ Users\Kyle\Documents\Visual Studio 2012\Projects\InoutBoard\InoutBoard.Core\Infrastructure\Filters\InitializeSimpleMembershipAttribute.cs中的ctor():42[InvalidOperationException:无法初始化ASP.NET Simple Membership数据库.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=256588]
c:\ Users\Kyle\Documents\Visual Studio 2012中的InoutBoard.Core.Infrastructure.Filters.SimpleMembershipInitializer..ctor() \项目\ InoutBoard\InoutBoard.Core \基础设施\ \过滤InitializeSimpleMembershipAttribute.cs:46
我将在以下链接上的github上托管代码https://github.com/keroger2k/InoutBoard
Meh*_*hin 25
第一种方式
检查sphair的答案(在当前线程中).
第二种方式
将以下程序集添加到web.config:
<system.web>
  <compilation debug="true" targetFramework="4.5">
    <assemblies>
      <add assembly="WebMatrix.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add assembly="WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </assemblies>
  </compilation>
</system.web>
更新
该WebMatrix.WebData组件包含一个启动方法来初始化会员/角色提供者和使RoleManager( PreApplicationStartCode.Start).但是ASP.NET无法在你的情况下运行.通过添加这两行代码,我们强制ASP.NET搜索这些程序集PreApplicationStartMethodAttribute(s).
Xax*_*xum 10
如果其他人收到此错误并且上述解决方案不起作用,就像我的情况一样.当我尝试添加程序集标记时,它表示无效的子对象.我必须指定roleManager和membership标识符,如下所示.一旦我这样做了更新数据库工作.
<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> 
Chr*_*son 10
我在托管公司运行时遇到了完全相同的错误(WinHost.com - 他们是优秀的BTW).
我的解决方案是添加到web.config:
<appSettings>
    <add key="enableSimpleMembership" value="true" />
</appSettings>
sph*_*air 10
而不是像Mehdi Golchin建议的那样将程序集添加到web.config,而是将WebMatrix.Data和WebMatrix.WebData上的程序集引用更改为CopyLocal = True.
| 归档时间: | 
 | 
| 查看次数: | 25974 次 | 
| 最近记录: |