To całkiem częsty scenariusz. Nie możesz zrobić niczego w oparciu o klienta, ponieważ klient może odejść i rozłączyć się, a ty stracisz dotychczasową pracę. Rozwiązaniem jest użycie Aktywacja Service Broker :tworzysz usługę w bazie danych i dołączasz aktywowaną procedurę. W swojej aplikacji (lub stronie ASP) wysyłasz wiadomość do usługi i osadzasz niezbędne parametry dla swojej procedury. Po zatwierdzeniu aplikacji komunikat aktywuje procedurę serwisową. procedura serwisowa odczytuje parametry z komunikatu i wywołuje twoją procedurę. ponieważ aktywacja odbywa się w wątku serwera niezwiązanym z oryginalnym połączeniem, jest to niezawodne. W rzeczywistości serwer może nawet wyłączyć i ponownie uruchomić podczas Twoja procedura jest wykonywana, a praca zostanie cofnięta, a następnie wznowiona, ponieważ komunikat aktywujący ponownie uruchomi procedurę serwisową po ponownym uruchomieniu.
Aktualizacja
Opublikowałem szczegóły, jak to zrobić, w tym przykładowy kod na moim blogu:Asynchroniczne wykonanie procedury .