Удаление локальной базы данных и поставщика членства из контроля входа asp.net

Я использовал сайт Visual Studio по умолчанию для создания приложения. Это нормально работает на локальном компьютере, но когда я размещаю его на сервере, iis.it выдает ошибку

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.

в моей базе данных нет такого sp, а также я не хочу использовать членство provider.so, я пытался удалить локальные соединения из web.config, но все равно не повезло.

<remove name="LocalSqlServer" />
        <clear />
        <add name="LocalSqlServer" connectionString="Data Source=GGT\NNY;Initial Catalog=VersionControl;User ID=sa;Password=123" providerName="System.Data.SqlClient"/>


        <add name="ConVersionControl" connectionString="Data Source=GGT\NNY;Initial Catalog=VersionControl;User ID=sa;Password=123" providerName="System.Data.SqlClient"/>

ConVersionControl

это соединение, которое я использую в моем приложении

Ниже приведен код, который я использую для входа

protected void LoginButton_Click(object sender, EventArgs e)
    {
        try
        {
            dtUserDetails = new DataTable();
            if (UserRepositoryBL.ValidateUser(LoginUser.UserName.Trim(), LoginUser.Password.Trim(), out dtUserDetails))
            {

                AuthUser au = new AuthUser();
                if (dtUserDetails.Rows.Count > 0)
                {
                    DataRow DR = dtUserDetails.Rows[0];
                    au.UserID = Convert.ToInt32(DR["UserID"].ToString());
                    au.UserNo = DR["UserNo"].ToString();
                    au.UserName = DR["UserName"].ToString();
                    au.Password = DR["Password"].ToString();
                }
                string userData = au.ToString();
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(

             1,                             // Version number

             LoginUser.UserName.Trim(),      // Username

             DateTime.Now,                  // Issue date

             DateTime.Now.AddMinutes(60), // Expiration date

             false,                         // Persistent?

             userData                 // User data

         );



                string eticket = FormsAuthentication.Encrypt(ticket);

                HttpCookie cookie = new HttpCookie

                     (FormsAuthentication.FormsCookieName, eticket);

                Response.Cookies.Add(cookie);


                BasePage.ActivityLog("User Login", LoginUser.UserName.Trim(), true, Request.RawUrl);
                string url = FormsAuthentication.GetRedirectUrl(LoginUser.UserName, false);

                Response.Redirect(url);



            }
            else
            {
                LoginUser.FailureText = "Your login attempt was not successful. Please try again.";
            }

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

обратите внимание, что приложение работает нормально для успешного входа в систему. Ошибка появляется выше, только когда я пытаюсь использовать неверное имя пользователя или пароль для входа

1 ответ

Если вы не хотите использовать поставщика членства ASP.NET, возможно, вы унаследовали поставщика от более высокого уровня web.config или machine.config на вашем сервере IIS.

Попробуйте очистить провайдера в вашей веб-конфигурации:

<system.web>
    <membership>
        <providers>
            <clear /> ...

    <roleManager>
        <providers>
            <clear /> ..

так далее

Однако если вы хотите использовать членство, то, если в вашей локальной базе данных нет таблиц членства, процедур и т. Д. Aspnet, но ваша локальная среда работает, вполне вероятно, что в вашей локальной среде разработки DDL членства был создан в база данных по умолчанию, т.е. aspnetdb

Настройки конфига должны быть в <membership> вашего web.config.

У вас есть 2 варианта:

  1. Переместить или создать aspnetdb база данных в вашей производственной среде, а также
  2. Объединить aspnetdb таблиц, процедур и т. д. в вашу локальную базу данных, а затем повторно разверните ее в рабочей среде.

Вы также можете сослаться здесь на то, как воссоздать объекты членства с нуля в вашей базе данных: Не удалось найти хранимую процедуру 'dbo.aspnet_CheckSchemaVersion'

Другие вопросы по тегам