Tôi đang sử dụng Universal Providers mới từ Microsoft cho phiên trong SQL Server. Việc triển khai phiên cũ trên SQL Server yêu cầu một công việc (chạy từng phút) để xóa các phiên hết hạn. Cái mới làm điều này kiểm tra và rõ ràng về mọi yêu cầu. Vì tôi đang thực sự chạy trong SQL Azure, tôi không có đại lý SQL để sắp xếp công việc, vì vậy điều này nghe có vẻ giống như một cách hợp lý để đi về nó (không, tôi không muốn trả tiền cho Azure Cache cho phiên).OptimisticConcurrencyException với System.Web.Providers
Vấn đề là khi nhiều người dùng truy cập trang web cùng một lúc, cả hai đều cố gắng xóa các phiên đã hết hạn cùng một lúc và lần thứ hai nhận được ngoại lệ đồng thời lạc quan.
System.Data.OptimisticConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Web.Providers.DefaultSessionStateProvider.PurgeExpiredSessions()
at System.Web.Providers.DefaultSessionStateProvider.PurgeIfNeeded()
at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Tôi đang sử dụng ELMAH để ghi lỗi và điều này hiển thị với một số tần suất. Trước khi tôi cố gắng cấu hình ELMAH để bỏ qua các lỗi, có ai biết cách ngăn chặn các lỗi xảy ra ngay từ đầu không? Có một số cấu hình với các nhà cung cấp mới mà tôi đang thiếu không?
Tôi cũng gặp phải sự cố tương tự. Bạn đã tìm ra cách khắc phục vấn đề này chưa? Cách duy nhất tôi có thể nghĩ là dịch ngược mã? Mọi gợi ý – chugh97
Điều tốt nhất tôi có thể nói, Microsoft không thực sự hỗ trợ các nhà cung cấp này. Người hoài nghi trong tôi nói rằng họ đang cố gắng để thúc đẩy người dùng Azure trả tiền cho bộ nhớ cache. Tôi muốn một người nào đó chứng minh tôi sai. Cuối cùng, chúng tôi đã từ bỏ nó và quay trở lại một nhà cung cấp SQL Server thẳng. Chúng tôi đã cần một máy chủ khác để lập kế hoạch cho các công việc không liên quan khác, vì vậy chúng tôi cũng đã xóa công việc đã hết hạn trong đó. Xin lỗi tôi không có gì tốt hơn để báo cáo. – icrf
Bạn đã giải quyết vấn đề này chưa? Tôi đang chạy vào cùng một vấn đề bản thân mình. – onit