Od jakiegoś czasu mamy problemy z zapisywaniem danych w naszej bazie danych SQL.Sesja jest uszkodzona przy użyciu usługi aspnet_state
Czasami zapisy są zapisywane z danymi, które nie pasują do reszty wiersza, dzięki czemu wydaje się, że w pewnym momencie dane są "zamieniane" na coś innego, być może dane innego użytkownika, przed przekazaniem do bazy danych .
Używamy TransactionScopes przez cały poziom izolacji ReadCommitted, który sprawia, że myślę, że kwestia integralności danych leży w aplikacji, a nie na poziomie bazy danych.
Skorzystamy z tej sesji intensywnie i zaczynamy myśleć, że czasy zepsutych danych są podobne do czasów, w których wdrażamy aktualizacje do systemu w ciągu dnia.
Używamy usługi aspnet_state do utrzymywania sesji po ponownym uruchomieniu aplikacji.
Nasi użytkownicy polegają na sesjach terminalowych, dlatego wielu użytkowników loguje się na tym samym serwerze i uruchamia system za pośrednictwem przeglądarki.
W przeszłości zauważyliśmy, że użytkownicy logują się przy użyciu tych samych danych logowania do domeny, ale jesteśmy teraz względnie pewni, że użytkownicy logują się teraz na unikatowych kontach.
99,9% danych jest poprawnych, ale staraliśmy się zrozumieć, co może być przyczyną tego sporadycznego problemu z integralnością danych.
Obecnie ograniczamy nasze rozmieszczenie do godzin pracy poza godzinami pracy pod kątem śmierci, ale nie zawsze jest to możliwe.
Czy ktoś może rzucić światło na to, dlaczego/jak to się dzieje?
EDIT: Mamy teraz to pojedyncze warstwy DAL patrz SQL query returns incorrect value in multi user environment