J'utilise WinHost.com pour héberger mon site. La base de données SQL et le système d’appartenance fonctionnent parfaitement sur mon ordinateur local, mais lorsqu’ils sont téléchargés sur le serveur, ils ne fonctionnent pas. J'ai suivi toutes les étapes correctement. Et j'ai contacté le support technique pour mon service mais cela fait plus de deux semaines et aucune réponse.
Je continue à avoir cette erreur lorsque j'essaie de me connecter ou d'enregistrer un nouvel utilisateur sur ma page d'adhésion sur mon site.
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
Quelqu'un peut-il me dire, s'il vous plaît, pourquoi cette erreur s'est produite (évidemment, il ne trouve rien ...) et comment je peux le réparer?
Merci à tous
Bael
Avez-vous exécutez aspnet_regsql.exe
contre le serveur SQL de WinHost.com?
aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName
Si vous ne savez pas où exécuter la commande ci-dessus, vous pouvez simplement exécuter le fichier exécutable "aspnet_regsql.exe".
Pour localiser ce fichier, ouvrez votre boîte de commande RUN en appuyant sur Windows Key + r et mettez la commande ci-dessous dans cette %windir%\Microsoft.NET\Framework\v4.0.30319
et appuyez sur Entrée, puis recherchez le fichier 'aspnet_regsql.exe'. Il ouvrira un assistant que vous pourrez suivre pour résoudre cette erreur.
Cette erreur survient généralement lorsque vous n'avez pas activé les rôles dans votre projet asp.net mvc. Au démarrage, la table d'identité aspnet a été créée automatiquement.
Vous devrez vous assurer de l'exécuter pour que les tables et les objets soient créés sur le serveur SQL de WinHost.com.
Ouvrez la commande visual studio Invite dans le dossier Outils Visual Studio du menu Démarrer et tapez aspnet_regsql
et suivez l’assistant pour enregistrer la base de données pour les fournisseurs d’adhésion et de rôle asp.net.
J'ai déjà vu ça auparavant. La base de données que vous utilisez ne contient pas les éléments de base de données requis pour les fonctionnalités d'appartenance, de gestion des rôles et de profil. Donc, vous avez deux options:
J'ai le même problème - je copie/colle connectionString de SQL Object manager
dans Visual Studio et oubliez de taper Initial Catalog=YourDatabaseName
.
J'ai eu exactement la même erreur quand j'avais activé <roleManager>
croyant que j'activais ASP.NET Identity 2. Ce ne sont pas les mêmes! Le <roleManager>
a activé une ancienne version de la gestion des identités qui utilise une structure de table différente de celle d’ASP.NET Identity 2 (qui n’a pas besoin d’être activée, c’est juste là).
Si vous utilisez intentionnellement l'ancien gestionnaire de rôles et obtenez toujours l'erreur, vous pouvez rechercher la valeur par défaut localdb
à la place de votre base de données. Dans ce cas, vous pouvez modifier <roleManager>
pour pointer sur la chaîne de connexion souhaitée:
<roleManager
enabled="true"
cacheRolesInCookie="true"
defaultProvider="OurSqlRoleProvider"
>
<providers>
<add
connectionStringName="DefaultConnection"
applicationName="/"
name="OurSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
Si vous souhaitez utiliser ASP.NET Identity 2, voici un article:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the-basics/
Vérifiez le schéma auquel la procédure stockée appartient sur votre hôte. Il est possible que ce ne soit pas dans le schéma "dbo".
par exemple. s'il se trouve dans SomeOtherSchema, votre appel doit être "SomeOtherSchema.aspnet_CheckSchemaVersion".
En bref, vous devez recompiler la dll du fournisseur aspnet en utilisant le nom d'utilisateur SQL attribué à votre hébergement.
Une autre option, pheraps simple à essayer, consiste à remplacer les références dbo de votre base de données de serveur SQL locale par votre nom d’utilisateur de la base de données d’hébergement, puis de télécharger et de joindre votre fichier mdf.
J'espère que ça aide
Thomas