Azure和独立SQL Server上的SqlMembership

Mat*_*eid 5 sql-server asp.net sqlmembershipprovider azure-sql-database

我正在使用ASP.NET Web Forms应用程序SqlMembershipProvider.由于它也在Azure上运行,我使用KB2006191更新的ASP.NET脚本用于SQL Azure用于表和SP.

显然,它们与独立的SQL Server 2008 R2 SP1无法顺利运行.特别是dbo.aspnet_Users_DeleteUser引发内部错误:

消息8624,级别16,状态1,过程aspnet_Users_DeleteUser,行111内部查询处理器错误:查询处理器无法生成查询计划.有关更多信息,请联系客户支持服务.

编辑:

我将问题分解为一个实际失败的SQL语句(即使我硬编码了一个值@UserId):

DELETE FROM dbo.aspnet_Users WHERE UserId = @UserId
Run Code Online (Sandbox Code Playgroud)

原版的:

我尝试通过下载累积更新包并设置跟踪标志4199来修复我的SQL Server安装.但是,这没有帮助.说实话,我不太确定我是否正确应用了补丁.我正在做进一步的研究.

此外,我尝试重写SP一点,因为我在网上发现了一些提示.这也没有帮助,并且aspnet_regsql无论如何都为独立SQL Server 生成相同的查询.实际上,我试图通过转动它来摆脱第111行周围的子查询:

IF ((@TablesToDeleteFrom & 1) <> 0 AND
    (@TablesToDeleteFrom & 2) <> 0 AND
    (@TablesToDeleteFrom & 4) <> 0 AND
    (@TablesToDeleteFrom & 8) <> 0 AND
    (EXISTS (SELECT UserId FROM dbo.aspnet_Users WHERE @UserId = UserId)))
Run Code Online (Sandbox Code Playgroud)

......进入这个:

IF ((@TablesToDeleteFrom & 15) <> 0)
Run Code Online (Sandbox Code Playgroud)

有没有人遇到类似的问题处理成员资格以及Azure和独立SQL Server?

Jon*_*ire 3

根据Scott Hanselman这篇博客文章ASP.NET Universal Providers For SqlExpress 1.1包 (System.Web.Providers) 是官方支持的跨 SQL Azure 和独立 SQL Server 启用 SQL 成员资格、角色和会话提供程序的方法。