Това всъщност е доста често срещан сценарий. Не можете да правите нищо базирано на клиента, защото клиентът може да си отиде и да прекъсне връзката и ще загубите работата, постигната до момента. Решението е да използвате Активиране на посредник на услуги :създавате услуга в базата данни и прикачвате активирана процедура. Във вашето приложение (или ASP страница) изпращате съобщение до услугата и вграждате необходимите параметри за вашата процедура. След като приложението ви се ангажира, съобщението активира сервизната процедура. сервизната процедура чете параметрите от съобщението и извиква вашата процедура. тъй като активирането се случва на сървърна нишка, несвързана с вашата оригинална връзка, това е надеждно. Всъщност сървърът може дори да се изключи и рестартира докато вашата процедура се изпълнява и работата ще бъде върната назад и след това възобновена, тъй като съобщението за активиране ще задейства отново сервизната процедура след рестартирането.
Актуализация
Публикувах подробности как да направя това, включително примерен код в моя блог:Изпълнение на асинхронна процедура .