2010-01-29 23 views
76

Ich verwende WinHost.com, um meine Website zu hosten. Das SQL Datenbank/Mitgliedschaftssystem funktioniert perfekt auf meinem lokalen Computer, aber wenn es auf den Server hochgeladen wird, funktioniert es nicht. Ich habe alle Schritte korrekt ausgeführt. Und ich habe Support für meinen Service kontaktiert, aber es war über 2 Wochen und keine Antwort.Gespeicherte Prozedur konnte nicht gefunden werden 'dbo.ASPnet_CheckSchemaVersion'

Ich erhalte diesen Fehler, wenn ich versuche, einen neuen Benutzer auf meiner Mitgliedschaftsseite auf meiner Website anzumelden oder zu registrieren.

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 

Kann jemand mir bitte erklären, warum dieser Fehler aufgetreten ist (natürlich kann es nicht etwas finden, ...), und wie kann ich es beheben?

Vielen Dank an alle

Bael

+0

ist es möglich, dass Sie die gespeicherte Prozedur Namen weiter qualifizieren müssen oder der Eigentümer nicht – David

+0

ist dbo Was versio n von SQL Server verwenden Sie? –

Antwort

149

Did Sie führen aspnet_regsql.exe gegen WinHost.com sql Server?

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

Sie müssen sicherstellen, dass Sie laufen diese so, dass die Tabellen und Objekte auf WinHost.com SQL Server erstellt werden.

+15

Wenn Sie die Sicherheit integriert haben, verwenden Sie das Flag "-E" anstelle von "-U" (Benutzername) und "-P" (Passwort) Flags. – Sung

+0

DANKE !!! Nur um hinzuzufügen, können Sie dies ohne Befehlszeilenargumente ausführen, um eine GUI zu bekommen, nicht ganz so haxxor, aber macht den Job :) – JMK

+0

@gabriel Wie man aspnet_regsql.exe ausführen? –

3

Überprüfen Sie das Schema die gespeicherte Prozedur auf Ihrem Rechner angehört - es könnte sein, dass es nicht in der „dbo“ Schema ist.

z.B. , wenn es innerhalb SomeOtherSchema ist, müßte Ihr Anruf „SomeOtherSchema.aspnet_CheckSchemaVersion“

+1

Danke AdaTheDev. Kannst du mir bitte sagen, wie ich den Ruf zu etwas anderem ändern würde? Wie, wo im Code wäre es ... web.config? –

1

Kurz sein sollten Sie den aspnet Provider DLL mit den SQL-Benutzername neu kompilieren Sie von Ihrem Hosting zugewiesen wurden.

  • Laden Sie die http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
  • aus dem Quellcode ersetzen alle Referenzen mit Ihrem Hosting Datenbank Benutzername
  • Compile (Sie benötigen Visual Studio) und Ort der ProviderToolkitSampleProviders.dll in dbo der Bin Ordner
  • Ersetzen Sie in Ihrer web.config das "type" Attribut jeder Zeile mit "Micr osoft.Samples., ProviderToolkitSampleProviders“
  • Ersetzen in Sie SQL Server lokal alle dbo Referenzen mit Ihrem Hosting-Datenbank Benutzernamen
  • Export die Schaffung Skript SQL-Objekt und führen Sie sie auf der entfernten Datenbank
  • Kopieren Sie die Datensätze aus dem lokalen sQL-Tabelle aspnet_SchemaVersions in die entfernte Datenbank

Eine weitere Option, zu versuchen pheraps einfacher, ist die dbo Referenzen in Ihrem lokalen sQL Server-Datenbank mit dem Hosting-Datenbank-Benutzernamen zu ersetzen, dann laden und Ihre mDF-Datei anhängen.

Hope it

Thomas

+0

nicht wahr? Welche Farbe hat der Himmel in deiner Welt? Lolzalot. Dude muss nur seine Datenbank bereitstellen oder seine Verbindungszeichenfolge korrigieren. Keine Antwort wäre besser gewesen. –

+1

Hoppla, wenn er schrieb "Ich habe alle Schritte richtig befolgt" Ich dachte, er bereits versucht, aspnet_regsql.exe und die Verbindungszeichenfolge überprüft. Ein Hosting-Provider, den ich kenne, lässt keine aspnet_regsql.exe zu, also ist meine eine funktionierende Lösung für diesen Fall. – Thomas

10

hilft habe ich schon gesehen. Die von Ihnen verwendete Datenbank enthält nicht die erforderlichen Datenbankelemente für die Funktionen Mitgliedschaft, Rollenverwaltung und Profil.So haben Sie ein paar Optionen bekommen:

  1. Kopieren über die Tabellen, Stored Procedures & Ansichten von Ihren lokalen SQL Server mithilfe von SQL Management Studios oder eine ähnliche Anwendung
  2. Verwenden Sie die aspnet_regsql.exe tool die Skripte zu installieren, um von neuem gemäß den Anweisungen in diesem post(ich glaube nicht, Sie das Werkzeug gegen eine Remote-Datenbank verwenden können, wenn sie gesperrt wird. so können Sie die Skripte exportieren werden müssen, und führen Sie sie manuell)
26

Öffnen Sie Visual Studio-Eingabeaufforderung von Visual Studio Tools Ordner aus dem Startmenü und aspnet_regsql

und folgen Sie dem Assistenten geben Sie die Datenbank für asp.net Mitgliedschaft und Rollenanbieter zu registrieren.

+2

Hallo Kumpel, running aspnet_regsql Ich konnte mein Problem beheben und jetzt ist die Frage, was das - aspnet_regsql - Do? –

5

Ich habe das gleiche Problem, ich kopiere/paste connectionString von SQL Object manager in Visual Studio und vergiss zu geben Initial Catalog=YourDatabaseName.

+0

Ich hatte 'Initial Catalog = Master' anstelle von' Initial Catalog = YourDatabaseName' –

+0

Danke! Das hat es für mich behoben. –

3

Ich hatte genau den gleichen Fehler, wenn ich <roleManager> aktiviert hatte, glaube ich ASP.NET Identity 2 aktiviert. Sie sind nicht das Gleiche! Die <roleManager> aktiviert eine alte Version der Identitätsverwaltung, die eine andere Tabellenstruktur zu ASP.NET Identity 2 verwendet (die übrigens nicht "aktivieren" benötigt - es ist nur dort).

Wenn Sie absichtlich den alten Rolle-Manager verwenden und immer noch den Fehler bekommen Sie localdb statt Ihrer Datenbank auf dem Standard suchen können, in welchem ​​Fall Sie <roleManager> ändern können jederVerbindungsZeichenFolge Sie verweisen sollen:

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

    </roleManager> 

Wenn Sie sind nach 2 ASP.NET Identität verwenden, ist hier ein Artikel über sie:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/

Verwandte Themen