Imansible trovare la stored procedure ‘dbo.aspnet_CheckSchemaVersion’

Sto usando WinHost.com per ospitare il mio sito. Il database SQL / sistema di appartenenza funziona perfettamente sul mio computer locale, ma quando viene caricato sul server non funziona. Ho seguito correttamente tutti i passaggi. E ho contattato il supporto per il mio servizio, ma sono trascorse più di 2 settimane e nessuna risposta.

Continuo a ricevere questo errore quando provo ad accedere o registrare un nuovo utente sulla mia pagina di iscrizione sul mio sito.

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 

Qualcuno può dirmi perché questo errore si è verificato (ovviamente non può trovare qualcosa …), e come posso risolvere il problema?

Grazie a tutti

Bael

Hai eseguito aspnet_regsql.exe contro il server sql di WinHost.com?

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

Dovrai assicurarti di eseguirlo in modo che le tabelle e gli oggetti vengano creati sul server SQL di WinHost.com.

Aprire il prompt dei comandi di Visual Studio dalla cartella degli strumenti di Visual Studio dal menu Start e digitare aspnet_regsql

e seguire la procedura guidata per registrare il database per i membri di appartenenza e provider di ruoli di asp.net.

L’ho visto prima. Il database che si sta utilizzando non ha gli elementi del database richiesti per l’appartenenza, la gestione dei ruoli e le caratteristiche del profilo. Quindi hai un paio di opzioni:

  1. Copia tra tabelle, stored procedure e viste dal tuo SQL Server locale utilizzando SQL Management Studio o un’applicazione simile
  2. Usa lo strumento aspnet_regsql.exe per installare gli script da nuovo come da istruzioni in questo post (non credo che tu possa usare lo strumento su un database remoto se è bloccato. Quindi dovrai esportare gli script ed eseguire loro manualmente)

Ho lo stesso problema: copio / incollo connectionString da SQL Object manager in Visual Studio e dimentico di digitare Initial Catalog=YourDatabaseName .

Controlla lo schema in cui la stored procedure appartiene al tuo host – potrebbe essere che non sia nello schema “dbo”.

ad esempio se è all’interno di SomeOtherSchema, la chiamata dovrebbe essere “SomeOtherSchema.aspnet_CheckSchemaVersion”

Ho avuto lo stesso errore quando ho abilitato credendo che stavo abilitando ASP.NET Identity 2. Non sono la stessa cosa! Il abilitato una vecchia versione della gestione delle identity framework che utilizza una diversa struttura di tabella in ASP.NET Identity 2 (che non ha bisogno di “abilitazione” tra l’altro – è solo lì).

Se si utilizza intenzionalmente il vecchio manager di ruolo e si continua a ricevere l’errore, è ansible che si guardi il localdb predefinito invece del proprio database, nel qual caso è ansible modificare in modo che punti qualsiasi stringa di connessione desiderata:

       

Se sei dopo aver usato ASP.NET Identity 2, ecco un articolo su di esso:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/

In breve, dovresti ricompilare la dll del provider di aspnet usando il nome utente sql che ti è stato assegnato dal tuo hosting.

  • Scarica il http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
  • Sostituisci dal codice sorgente tutti i riferimenti a dbo con il nome utente del tuo database di hosting
  • Compilare (è necessario Visual Studio) e inserire ProviderToolkitSampleProviders.dll nella cartella Bin
  • Nel tuo web.config sostituisci l’attributo “type” di ogni riga con “Microsoft.Samples., ProviderToolkitSampleProviders”
  • Sostituisci nel tuo server sql locale tutti i riferimenti dbo con il nome utente del tuo database di hosting
  • Esportare lo script di creazione dell’object sql ed eseguirli sul database remoto
  • Copia i record dalla tua tabella sql locale aspnet_SchemaVersions al database remoto

Un’altra opzione, gli errori più semplici da provare, è quella di sostituire i riferimenti dbo nel database del server SQL locale con il nome utente del database di hosting, quindi caricare e albind il file mdf.

Spero che sia d’aiuto

Tommaso