5

Tôi đang làm việc trên một ứng dụng ASP.NET Web Forms với SqlMembershipProvider. Vì nó đang chạy trên Azure quá, tôi sử dụng KB2006191 Updated ASP.NET scripts for use with SQL Azure cho bảng và SP.SqlMembership trên cả máy chủ SQL độc lập và Azure

Rõ ràng, chúng không hoạt động trơn tru với SQL Server 2008 R2 SP1 độc lập. Đặc biệt dbo.aspnet_Users_DeleteUser cháy một lỗi nội bộ:

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:

tôi gục ngã vấn đề này với một câu lệnh SQL mà thực sự thất bại (thậm chí nếu tôi cứng mã một giá trị cho @UserId):

DELETE FROM dbo.aspnet_Users WHERE UserId = @UserId 

gốc:

Tôi đã thử sửa lỗi cài đặt SQL Server của mình bằng downloading a Cumulative Update Package and setting trace flag 4199. Tuy nhiên, điều này không giúp được gì. Thành thật mà nói, tôi không chắc chắn liệu tôi đã áp dụng bản vá đúng cách. Tôi đang nghiên cứu thêm về điều này.

Hơn nữa, tôi đã cố gắng viết lại SP một chút, vì tôi đã tìm thấy một số mẹo trên web. Điều này không giúp được gì, và cùng một truy vấn được tạo ra bởi aspnet_regsql cho SQL Server độc lập. Trên thực tế, tôi đã cố gắng để thoát khỏi một subquery xung quanh dòng 111 bằng cách này:

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

... vào đây:

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

Có ai đi qua vấn đề tương tự đối phó với các thành viên và cả Azure và SQL Server độc lập?

Trả lời

3

Theo Scott Hanselmanthis blog post, gói ASP.NET Universal Providers For SqlExpress 1.1 (System.Web.Providers) là phương thức được hỗ trợ chính thức cho phép thành viên SQL, vai trò và nhà cung cấp phiên trên SQL Azure và SQL Server độc lập.

+0

Chúng tôi sử dụng các nhà cung cấp phổ dụng và chúng hoạt động tốt. Lưu ý rằng chúng chỉ hoạt động với ASP.Net 4.0+. –

+0

+1 (và trả lời) để cải thiện thực sự. Tôi đã có vấn đề thực tế của tôi cố định ngay bây giờ bằng cách lập chỉ mục một cột trong một trong các bảng của riêng tôi có một tham chiếu khóa ngoài tới 'aspnet_Users'. Tuy nhiên, điều này thường không thích ứng. –

Các vấn đề liên quan