迁移asp.net网站会中断成员资格提供程序
我有一个asp.net网站,它是在连接到sql server 2000的.net Framework v2上开发的。我正在尝试将它迁移到一个新的服务器上,该服务器上有.NETFrameworkV3.5和SQLServer2008。我备份了数据库并将其恢复到新的数据库服务器。我移动了网站并更新了web.config。但现在我无法登录到该网站。我运行了sql profiler来查看发生了什么,这是在我尝试登录时运行的存储过程迁移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
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转换问题都是一个值得了解的问题