Question

J'ai un site Web asp.net qui a été développé sur .Net Framework v2 et se connectant au serveur SQL 2000. J'essaie de le migrer vers un nouveau serveur doté du .Net Framework v3.5 et de SQL. serveur 2008. J'ai sauvegardé la base de données et l'ai restaurée sur le nouveau serveur de base de données. J'ai déplacé le site Web et mis à jour le web.config. Maintenant, cependant, je ne peux pas me connecter au site. J'ai lancé sql profiler pour voir ce qui se passait et voici le processus stocké qui est exécuté lorsque je tente de me connecter.

exec dbo.aspnet_Membership_GetPasswordWithFormat @ApplicationName=N'dev',
@UserName=N'AffiliateBob', @UpdateLastLoginActivityDate=1,
@CurrentTimeUtc='2009-10-26 20:43:23.7130000'

Notez le format du paramètre @CurrentTimeUtc. Lorsque je mets cela dans SQL Management Studio et que je l'exécute, le message d'erreur suivant s'affiche:

Msg 8114, Level 16, State 1, Procedure aspnet_Membership_GetPasswordWithFormat, Line 0
Error converting data type varchar to datetime.

Voici la section des membres de mon web.config.

<membership>
    <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" 
                    type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
                    connectionStringName="LocalSqlServer" 
                    enablePasswordRetrieval="false" 
                    enablePasswordReset="true" 
                    requiresQuestionAndAnswer="false" 
                    requiresUniqueEmail="true" 
                    passwordFormat="Hashed" 
                    maxInvalidPasswordAttempts="999" 
                    minRequiredPasswordLength="6" 
                    minRequiredNonalphanumericCharacters="0" 
                    passwordAttemptWindow="999" 
                    passwordStrengthRegularExpression="" 
                    applicationName="dev"/>
    </providers>
</membership>
Était-ce utile?

La solution

Cela s'est avéré être un problème de web.config . J'ai résolu ce problème en créant un nouveau fichier web.config propre et en ajoutant des sections de l'ancien web.config .

Autres conseils

Est-ce que ça marche si vous changez la date en 2009-10-10? Si c'est le cas, vous avez un problème de langue / paramètres régionaux. ASP.NET envoie le paramètre de date dans MM / DD et SQL Server attend DD / MM ou inversement. Vérifiez ce paramètre dans ASP.NET et pour votre connexion SQL Server.

Cela peut ne pas être la meilleure solution dans certains cas, mais cela a finalement résolu mon problème:

http://forums.asp.net/t/1398826.aspx/1 <

Au départ, j'avais essayé d'explorer les procédures stockées du fournisseur d'adhésion et de commencer à déplacer tous les DateTime vers ceux de DateTime2, mais je suis sûr que vous pouvez imaginer la boîte de Pandore qui s'ouvre. Quoi qu'il en soit, le problème de la conversion DateTime est une bonne chose à connaître.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top