Вопрос

Я установил ODP.NET и использую службу состояния сеанса через Oracle для ASP.NET веб-сайта.Я протестировал это, как мне показалось, довольно тщательно и не увидел никаких серьезных проблем.Однако некоторые пользователи жаловались на ошибки исключения, когда они использовали систему.Я добавил несколько дополнительных протоколирований и выяснил, как воспроизвести проблему.Это происходит, когда пользователь дважды щелкает по гиперссылке.Я никогда раньше не задумывался о двойном щелчке по гиперссылке и не знал, что пользователям нравится это делать, поэтому я не проверял такую возможность.При этом отправляется 2 идентичных запроса на сохранение элемента сеанса с одним и тем же первичным ключом.Я использую ODP.NET 11.1.0 для платформы .NET 2.0, и вызываемые функции были запутаны Oracle, поэтому я не могу это исправить там.У кого-нибудь еще была такая проблема?Кто-нибудь знает о решении, кроме как сообщить пользователям, что вы не дважды щелкаете по гиперссылкам?

Это было полезно?

Решение

Во-первых, это звучит так, как будто Oracle должен обратиться к чему-то такому.Их код должен проверять это и предотвращать.

Возможно, вам придется установить флажок в ваших обработчиках гиперссылок, чтобы предотвратить двойную отправку.Вы могли бы использовать служебный класс в качестве оболочки вокруг поставщика сеансов Oracle с некоторыми lock заявления для предотвращения двойного представления.Однако я бы был осторожен - это может привести к проблемам с производительностью.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top