0

Visual StudioとC#についてはまだ比較的経験が浅いので、必要な情報が提供されていないか、説明が不明な場合はお知らせください。

Visual Studio 2010 Web DeveloperExpressにMVC4プロジェクトがあり、基本的なフォーム認証をセットアップしようとしています。ASP.NET Configuration Managerを使用して、いくつかのテストユーザーと役割を設定しました。Configuration Managerは、プロジェクトに含まれている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 SimpleMembershipDatabaseを初期化できませんでした」と表示されます。

上記の内部例外の内部例外は、特定のモデルの「概念モデルタイプが見つかりませんでした」と述べています。

見つからなかったモデルは、データベースから生成されたADO.Net[.edmx]ファイルに属しています。見つからないモデルは、アルファベット順にデータベースの最初のテーブル/クラスであるため、そのデータベースのすべてのクラスにも適用される可能性があります。

それが重要かどうかはわかりませんが、ASPNETDB.MDFとは別のデータベースを使用して、Webサイトに入力された情報を保存しています。

LazyInitializer.EnsureInitialized()メソッドがこの問題を引き起こしている理由がわかりません。

4

1 に答える 1

0

WebSecurity.InitializeDatabaseConnectionで使用されている接続文字列を確認しましたか?Global.asax.cs Application_Start()これにより、問題が発生する可能性があります。

名前付き接続文字列が正しい場合、dbContext 接続文字列が正しいことを確認します。

public SomeContext(): base("MyConnectionStringName")
{
}
于 2013-03-06T19:47:44.227 に答える