5

Pracuję na aplikacji ASP.NET Web Forms z SqlMembershipProvider. Ponieważ działa również na platformie Azure, używam KB2006191 Updated ASP.NET scripts for use with SQL Azure dla tabel i SP.SqlMembership na Azure i Standalone SQL Server

Najwyraźniej nie działają one sprawnie z samodzielnym programem SQL Server 2008 R2 SP1. Szczególnie dbo.aspnet_Users_DeleteUser odpala błąd wewnętrzny:

Msg 8624, Level 16, State 1, Procedure aspnet_Users_DeleteUser, Line 111 Internal Query Processor Error: The query processor could not produce a query plan. For more information, contact Customer Support Services.

Edit:

I zepsuł problemu do jednej instrukcji SQL, które faktycznie nie powiedzie się (nawet jeśli trudno kod wartość dla @UserId):

DELETE FROM dbo.aspnet_Users WHERE UserId = @UserId 

oryginalny:

Próbowałem naprawić moją instalację programu SQL Server przez downloading a Cumulative Update Package and setting trace flag 4199. Jednak to nie pomogło. Szczerze mówiąc, nie jestem zbyt pewny, czy poprawnie zastosowałem łatę. Robię dalsze badania na ten temat.

Co więcej, starałem się trochę przepisać SP, ponieważ znalazłem kilka wskazówek w Internecie. To też nie pomogło, a to samo zapytanie jest generowane przez aspnet_regsql i tak w przypadku samodzielnego serwera SQL. Rzeczywiście, starałem się pozbyć podkwerendzie wokół linii 111, obracając w ten sposób:

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))) 

... w ten sposób:

IF ((@TablesToDeleteFrom & 15) <> 0) 

Czy ktoś natknąć się podobnych problemów i radzenia sobie z członkostwa zarówno Azure i samodzielny serwer SQL?

Odpowiedz

3

Według Scott Hanselman i this blog post Z ASP.NET Universal Providers For SqlExpress 1.1 opakowaniu (System.Web.Providers) jest oficjalnie wspierany sposób umożliwiający członkostwa SQL, rola i dostawców w całej sesji SQL Azure i autonomiczny SQL Server.

+0

Używamy uniwersalnych dostawców i działają świetnie. Zauważ, że działają one tylko dla ASP.Net 4.0+. –

+0

+1 (i odpowiedź) na prawdziwą poprawę. Naprawiłem teraz mój aktualny problem poprzez indeksowanie kolumny w jednej z moich własnych tabel, które zawierało odniesienie do klucza obcego do 'aspnet_Users'. Jednak nie jest to zwykle adaptacja. –

Powiązane problemy