Не удалось найти хранимую процедуру «dbo.aspnet_CheckSchemaVersion»

Я использую WinHost.com для размещения моего сайта. Система базы данных SQL / членства отлично работает на моем локальном компьютере, но при загрузке на сервер она не работает. Я правильно выполнил все шаги. И я связался с поддержкой моей службы, но прошло более 2 недель и ответа не было.

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

Server Error in '/' Application. -------------------------------------------------------------------------------- Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [SqlException (0x80131904): Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1953274 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849707 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +204 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +175 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137 System.Web.Util.SecUtility.CheckSchemaVersion(ProviderBase provider, SqlConnection connection, String[] features, String version, Int32& schemaVersionCheck) +378 System.Web.Security.SqlMembershipProvider.CheckSchemaVersion(SqlConnection connection) +89 System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) +815 System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +105 System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved) +42 System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) +78 System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +60 System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +119 System.Web.UI.WebControls.Login.AttemptLogin() +115 System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +101 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4016 

Может кто-нибудь, пожалуйста, скажите мне, почему эта ошибка произошла (очевидно, что она не может найти что-то …), и как я могу это исправить?

Спасибо вам всем

Bael

Вы запустили aspnet_regsql.exe на сервере sql-сервера WinHost.com?

 aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName 

Вам нужно будет убедиться, что вы запустите это, чтобы таблицы и объекты создавались на сервере SQL WinHost.com.

Откройте командную строку Visual Studio из папки инструментов Visual Studio из меню «Пуск» и введите aspnet_regsql

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

Я видел это раньше. Используемая база данных не имеет необходимых элементов базы данных для функций членства, ролей и профилей. Итак, у вас есть несколько вариантов:

  1. Скопируйте таблицы, хранимые процедуры и представления из локального SQL Server с помощью SQL Management Studio или аналогичного приложения
  2. Используйте инструмент aspnet_regsql.exe для установки сценариев заново в соответствии с инструкциями в этом сообщении (я не думаю, что вы можете использовать этот инструмент для удаленной базы данных, если он заблокирован. Таким образом, вам придется экспортировать скрипты и запустить их вручную)

У меня такая же проблема: я Initial Catalog=YourDatabaseName connectionString из SQL Object manager в Visual Studio и забываю ввести Initial Catalog=YourDatabaseName .

Проверьте схему, на которой хранимая процедура принадлежит вашему хосту, – может быть, это не в схеме «dbo».

например, если он находится в пределах SomeOtherSchema, ваш вызов должен быть «SomeOtherSchema.aspnet_CheckSchemaVersion»

У меня была такая же ошибка, когда я включил <roleManager> полагая, что я <roleManager> ASP.NET Identity 2. Они не то же самое! <roleManager> включил старую версию управления идентификацией, которая использует другую структуру таблиц для ASP.NET Identity 2 (которая, кстати говоря, не нуждается в «включении»).

Если вы намеренно используете старый диспетчер ролей и все еще получаете ошибку, вы можете искать localdb базу данных по умолчанию вместо вашей базы данных, и в этом случае вы можете изменить <roleManager> чтобы указать на любую строку соединения, которую вы хотите:

  <roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="OurSqlRoleProvider" > <providers> <add connectionStringName="DefaultConnection" applicationName="/" name="OurSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" /> </providers> </roleManager> 

Если вы используете ASP.NET Identity 2, вот статья:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/

Короче говоря, вы должны перекомпилировать dll поставщика aspnet, используя имя пользователя sql, которое вы назначили с вашего хостинга.

  • Загрузите http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
  • Замените из исходного кода все ссылки на dbo с вашим именем базы данных хостинга
  • Скомпилируйте (вам понадобится Visual Studio) и поместите файл ProviderToolkitSampleProviders.dll в папку Bin
  • В вашем web.config замените атрибут «type» каждой строки на «Microsoft.Samples., ProviderToolkitSampleProviders»
  • Замените в своем локальном сервере sql все ссылки dbo с вашим именем пользователя базы хостинга
  • Экспортируйте сценарий создания объекта sql и запустите их в удаленной базе данных
  • Скопируйте записи из локальной таблицы sql aspnet_SchemaVersions в удаленную базу данных

Другим вариантом, который проще попробовать, является замена ссылок dbo в вашей локальной базе данных SQL Server с вашим именем пользователя базы данных хостинга, затем загрузка и прикрепление файла mdf.

Надеюсь, поможет

Томас

Interesting Posts

Присоединить базу данных SQL Server 2000 на SQL Server 2005

SQL Server: получить последнюю запись на основе определенного столбца из двух таблиц

Изменение кода для исправления Параметр недопустимой длины передан функции LEFT или SUBSTRING

INSERT INTO .. ​​SELECT .. уникальное нарушение ограничений

почему вставка одной строки в x раз быстрее, чем вставка x строк сразу

C # строка сортировки с запятыми

В SQL Server я хочу использовать один и тот же запрос для всех таблиц в базе данных

как читать столбец со значением NULL из текстового файла в SSIS как NULL и не заменять его каким-то случайным

почему varchar медленнее, чем nvarchar

LINQ настолько медленный, что с огромной таблицей базы данных

TSQL Random Select с выборочными критериями

Выражение небулевого типа, указанное в контексте, где ожидается условие, около «Начать»,

Восстановить базу данных MS SQL с помощью пути, отличного от «c: \ Program Files \ Microsoft SQL \ … \ Backup»

JDBC, INSERT MULTIPLE записи, полученные из запроса, в другую таблицу

Шаг выбора SQL

Давайте будем гением компьютера.