我仍然是一个相对缺乏经验的视觉工作室和C#,所以请让我知道,如果必要的信息没有提供或我在我的描述不清楚。
我在Visual Studio 2010 Web Developer Express中有一个MVC 4项目,我正在尝试设置基本窗体身份验证。我已经使用ASP.NET配置管理器设置了两个测试用户和角色。配置管理器还在项目中包含的my App_data文件夹中创建了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()方法会导致这个问题。
发布于 2013-03-07 03:47:44
您是否检查了Global.asax.cs Application_Start()中WebSecurity.InitializeDatabaseConnection使用的连接字符串-这可能会导致问题。
如果命名连接字符串正确,您是否确定dbContext连接字符串正确:
public SomeContext(): base("MyConnectionStringName")
{
}https://stackoverflow.com/questions/15255298
复制相似问题