代码之家  ›  专栏  ›  技术社区  ›  Nick Johnson

迁移asp.net网站会中断成员资格提供程序

  •  1
  • Nick Johnson  · 技术社区  · 17 年前

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

    请注意@CurrentTimeUtc参数的格式。当我把它放入SQLManagementStudio并运行它时,我得到以下错误消息。

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

    <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 回复  |  直到 17 年前
        1
  •  1
  •   Christian Specht    14 年前

    web.config 问题我通过创建一个新的干净的 web.config 文件,并从旧文件中添加节 .

        2
  •  0
  •   Bryan    17 年前

    如果您将日期更改为2009-10-10,它可以工作吗?如果是这样,您就有语言/区域设置问题。ASP.NET正在以MM/DD格式发送日期参数,SQL Server希望以DD/MM格式发送,反之亦然。在ASP.NET和SQL Server登录中检查此设置。

        3
  •  0
  •   sheanineseven Gokulnath    14 年前

    在某些情况下,这可能不是最佳解决方案,但最终解决了我的问题:

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

    我最初试图深入研究成员资格提供程序存储的进程,并开始将所有DateTime移到DateTime2,但我相信您可以想象会出现多少蠕虫。不管怎样,DateTime转换问题都是一个值得了解的问题。