Moja aplikacja ASP.NET (3.5) umożliwia użytkownikom wykonywanie złożonych zapytań, które mogą zająć do 4 minut w celu zwrócenia wyników.Jak mogę anulować zapytanie bazy danych w ASP.NET, gdy przeglądarka użytkownika się rozłączy?
Kiedy robię długie pętle kodu, sprawdzam od czasu do czasu Response.IsClientConnected()
, więc mogę zakończyć tę stronę, jeśli użytkownik zamknie przeglądarkę lub kliknie przycisk zatrzymania.
Ale podczas kwerendy SQL Server, mój kod .NET jest zablokowany na wywołanie GetDataReader()
.
Czy istnieje prosty sposób, aby GetDataReader() asynchronicznie, więc mogę czekać na to, ale nadal sprawdzić, powiedzmy, co 5-10 sekund, aby sprawdzić, czy użytkownik jest nadal podłączony, i za kaucją na kwerendę bazy danych, jeśli Zostawiłem?
A może jest inna alternatywa, o której nie myślę?
Myślę, że to jest, dzięki! Zrobię później badania i upewnię się, że to pasuje do rachunku, zanim przyjmuję. – richardtallent
@ richardtallent Nigdy go nie użyłem, ale dodatkowe łącze dodane i pokazuje więcej przykładów i sugeruje użycie metody cancel w obiekcie polecenia – Pharabus