ASP.NET einfacher Mitgliedschaftsanbieter?

Ich habe die Asp.Net Mvc 4 Internet App geöffnet. Vorlage. Und ich setze die Verbindungszeichenfolge für meine Datenbank wie folgt:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=ALI-PC\;Initial Catalog=OsosPlusDb;Persist Security Info=True;User ID=sa;Password=sa;" providerName="System.Data.SqlClient" />
</connectionStrings>

Ich führe ein Projekt aus, klicke auf "Registrieren". Ich habe einen neuen Benutzer wie diesen erstellt:

Wenn ich zum Posten auf "Registrieren" klicke, wird folgender Fehler angezeigt:

Es wird jedoch ein neuer Benutzer in der Datenbank erstellt, und es wird kein membership_user erstellt (die Mitgliedschaftstabelle enthält keine hinzugefügten Benutzerinformationen):

Ich kann nicht finden, was das Problem ist. Manchmal ist kein Fehler aufgetreten.

AKTUALISIEREN

Und Ausnahme-Snapshot:

AcoountModel:

public class UsersContext : DbContext
{
    public UsersContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}

InitializeSimpleMembershipAttribute.cs

[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);
            }
        }
    }
}

LETZTE ÄNDERUNG UND ZUSAMMENFASSUNG

Problem ist Zeichen ("i"). Wenn ich kein "i" benutze, ist alles in Ordnung. Aber wenn ich es benutze, habe ich diesen Fehler bekommen. Wie kann ich dieses Problem beheben?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage