Удаление локальной базы данных и поставщика членства из контроля входа 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 варианта:
- Переместить или создать
aspnetdb
база данных в вашей производственной среде, а также - Объединить
aspnetdb
таблиц, процедур и т. д. в вашу локальную базу данных, а затем повторно разверните ее в рабочей среде.
Вы также можете сослаться здесь на то, как воссоздать объекты членства с нуля в вашей базе данных: Не удалось найти хранимую процедуру 'dbo.aspnet_CheckSchemaVersion'