Sie müssen die Methode "WebSecurity.InitializeDatabaseConnection" aufrufen, bevor Sie eine andere Methode der Klasse "WebSecurity" aufrufen
Bei jedem Neustart des Debuggens mit Visual Studio wird der folgende Fehler angezeigt:
Sie müssen die Methode "WebSecurity.InitializeDatabaseConnection" aufrufen, bevor Sie eine andere Methode der Klasse "WebSecurity" aufrufen. Dieser Aufruf sollte in einer _AppStart.cshtml-Datei im Stammverzeichnis Ihrer Site platziert werden.
Aber das ist jedes Mal, und wenn ich die App zum Stoßen bereitstelle. Ich erhalte diesen Fehler hier und dann zufällig.
Ich setze den richtigen Tag:
[Authorize(Roles = "admin")]
[InitializeSimpleMembership]
public class IndexController : Controller
zu steuern und hier ist der Filter so wie er ist. Es will einfach nicht funktionieren.
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Threading;
using System.Web.Mvc;
using MeetingTaskManagement.Models;
using WebMatrix.WebData;
namespace MeetingTaskManagement.Filters
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
{
private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;
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);
}
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
Database.SetInitializer<UsersContext>(null);
try
{
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
catch (Exception ex)
{
throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
}
}
}
}
}
Kann mir jemand helfen, das zu klären?