この問題は、Application_Start() 関数が最初のユーザー アクションでのみトリガーされるために発生します。ただし、IndexController は、ユーザーがイベントを実行する前にトリガーされます。プロジェクトから [InitializeSimpleMembership] を削除するだけで、私も多くのフラストレーションを感じました...
次のコードを global.asax に追加するだけです
private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}
public class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
using (var context = new UsersContext())
context.UserProfiles.Find(1);
if (!WebSecurity.Initialized)
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
}
もちろん、正しい dbContext() を作成し、プロジェクトに一致する正しい InitializeDatabaseConnections プロパティが設定されていることを確認してください。
KR