Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迁移asp.net网站会中断成员资格提供程序_Asp.net_Sql Server_Asp.net Membership_Sqlmembershipprovider - Fatal编程技术网

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

迁移asp.net网站会中断成员资格提供程序,asp.net,sql-server,asp.net-membership,sqlmembershipprovider,Asp.net,Sql Server,Asp.net Membership,Sqlmembershipprovider,我有一个asp.net网站,它是在连接到sql server 2000的.net Framework v2上开发的。我正在尝试将它迁移到一个新的服务器上,该服务器上有.NETFrameworkV3.5和SQLServer2008。我备份了数据库并将其恢复到新的数据库服务器。我移动了网站并更新了web.config。但现在我无法登录到该网站。我运行了sql profiler来查看发生了什么,这是在我尝试登录时运行的存储过程 exec dbo.aspnet_Membership_GetPasswor

我有一个asp.net网站,它是在连接到sql server 2000的.net Framework v2上开发的。我正在尝试将它迁移到一个新的服务器上,该服务器上有.NETFrameworkV3.5和SQLServer2008。我备份了数据库并将其恢复到新的数据库服务器。我移动了网站并更新了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参数的格式。当我把它放入SQLManagementStudio并运行它时,我得到以下错误消息

Msg 8114, Level 16, State 1, Procedure aspnet_Membership_GetPasswordWithFormat, Line 0
Error converting data type varchar to datetime.
这是my 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>


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

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

这是一个
web.config
问题。我通过创建一个新的干净的
web.config
文件并从旧的
web.config

中添加节来解决这个问题,结果是一个
web.config
问题。我通过创建一个新的干净的
web.config
文件并从旧的
web.config

添加节来解决这个问题,在某些情况下,这可能不是最好的解决方案,但最终解决了我的问题:


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

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

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