Detta är faktiskt ett ganska vanligt scenario. Du kan inte göra någonting klientbaserat eftersom klienten kan försvinna och koppla från och du kommer att förlora det arbete som uppnåtts hittills. Lösningen är att använda Service Broker Activation :du skapar en tjänst i databasen och bifogar en aktiverad procedur. I din applikation (eller ASP-sida) skickar du ett meddelande till tjänsten och bäddar in de nödvändiga parametrarna för din procedur. När din ansökan har bekräftats aktiverar meddelandet serviceproceduren. serviceproceduren läser parametrarna från meddelandet och anropar din procedur. eftersom aktivering sker på en servertråd som inte är relaterad till din ursprungliga anslutning är detta tillförlitligt. Servern kan faktiskt till och med stänga av och starta om medan din procedur körs och arbetet kommer att rullas tillbaka och sedan återupptas, eftersom det aktiverande meddelandet kommer att utlösa serviceproceduren igen efter omstarten.
Uppdatera
Jag har publicerat detaljerna om hur man gör detta inklusive exempelkod på min blogg:Asynkron procedurkörning .