Перенос сайта asp.net нарушает членство провайдера - PullRequest
1 голос
/ 27 октября 2009

У меня есть веб-сайт asp.net, разработанный на .Net Framework v2 для подключения к SQL Server 2000. Я пытаюсь перенести его на новый сервер, на котором установлена ​​.Net Framework v3.5 вместе с SQL сервер 2008. Я сделал резервную копию базы данных и восстановил ее на новом сервере базы данных. Я переместил веб-сайт и обновил web.config. Однако сейчас я не могу войти на сайт. Я запустил sql profiler, чтобы увидеть, что происходит, и это хранимый процесс, который запускается при попытке войти в систему.

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

Обратите внимание на формат параметра @CurrentTimeUtc. Когда я помещаю это в sql management studio и запускаю, я получаю следующее сообщение об ошибке.

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

Вот раздел членства из моего 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>

Ответы [ 3 ]

1 голос
/ 27 октября 2009

Это оказалось проблемой web.config.Это я решил, создав новый чистый web.config файл и добавив разделы из старого web.config.

0 голосов
/ 02 марта 2012

В некоторых случаях это может быть не лучшим решением, но в итоге я решил мою проблему:

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

Первоначально я пытался порыться в хранимых процедурах провайдера членства и начать перемещать все DateTime в DateTime2, но я уверен, что вы можете себе представить, как открывается червь. В любом случае, о проблеме преобразования DateTime стоит знать.

0 голосов
/ 27 октября 2009

Хорошо ли работает, если вы измените дату на 2009-10-10? Если это так, у вас есть проблема с языком / языком. ASP.NET отправляет параметр даты в MM / DD, а SQL Server ожидает DD / MM или наоборот. Проверьте этот параметр в ASP.NET и для входа в SQL Server.

...