C# InitializeSimpleMembershipAttribute返回TargetInvocationException

C# InitializeSimpleMembershipAttribute返回TargetInvocationException,c#,asp.net-mvc,asp.net-membership,forms-authentication,C#,Asp.net Mvc,Asp.net Membership,Forms Authentication,我对visualstudios和C#还比较缺乏经验,所以如果没有提供必要的信息或者我的描述不清楚,请告诉我 我在VisualStudio2010WebDeveloperExpress中有一个MVC4项目,我正在尝试设置基本表单身份验证。我使用ASP.NET配置管理器设置了几个测试用户和角色。Configuration Manager还在项目中包含的my App_数据文件夹中创建了ASPNETDB.MDF数据库 我目前正在使用生成的AccountController和Account视图 每当我尝试

我对visualstudios和C#还比较缺乏经验,所以如果没有提供必要的信息或者我的描述不清楚,请告诉我

我在VisualStudio2010WebDeveloperExpress中有一个MVC4项目,我正在尝试设置基本表单身份验证。我使用ASP.NET配置管理器设置了几个测试用户和角色。Configuration Manager还在项目中包含的my App_数据文件夹中创建了ASPNETDB.MDF数据库

我目前正在使用生成的AccountController和Account视图

每当我尝试访问具有[Authorize]属性的HTTPGET或HTTPPOST方法时,InitializeSimpleMembershipAttribute类中的以下方法会引发TargetInvocationException:

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{
    // Ensure ASP.NET Simple Membership is initialized only once per app start 
    LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}
查看异常的详细信息时,内部异常状态为“无法初始化ASP.NET简单成员资格数据库”

上述内部异常的内部异常声明它“找不到”给定模型的概念模型类型

找不到的模型属于从数据库生成的ADO.Net[.edmx]文件。它找不到的模型是数据库中按字母顺序排列的第一个表/类,因此它可能也适用于该数据库中的每个类

我不确定这是否重要,但我使用了一个与ASPNETDB.MDF分开的数据库来存储在网站上输入的信息


我不明白为什么LazyInitializer.EnsureInitialized()方法可能会导致此问题。

您是否检查了
WebSecurity.InitializeDatabaseConnection在
Global.asax.cs
应用程序启动()
中使用的连接字符串?这可能会导致此问题

如果命名连接字符串正确,是否确定dbContext连接字符串正确:

public SomeContext(): base("MyConnectionStringName")
{
}

Global.asax.cs中没有WebSecurity.InitializeDatabaseConnection。我使用的是edmx,因此我没有编写dbContext。我在entities类中使用的与dbContext相反的生成方法的一个示例是
PublicDatabaseEntities():base(“name=DatabaseEntities”,“DatabaseEntities”){}
是DatabaseEntities连接字符串,该字符串指向包含SimpleMembership表的数据库(网页\成员资格等)-正如您提到的,您使用两个数据库-它必须在一个点上,否则实体将不存在,但它可能已更改?不,不是。DatabaseEntities连接指向存储在网站上输入的信息的数据库。它包含有关用户输入和修改的业务模型的信息。这个数据库运行得非常好。但是,ASP.Net配置管理器最近添加了
ASPNETDB.MDF
数据库,该数据库包含用户帐户数据。我的问题是,当运行
LazyInitializer.EnsureInitialized()
时(OP中提到的),它无法找到DatabaseEntities db定义的类的“概念模型类型”。