Dette er faktisk et ganske almindeligt scenarie. Du kan ikke gøre noget klientbaseret, fordi klienten kan forsvinde og afbryde forbindelsen, og du vil miste det arbejde, du har opnået indtil nu. Løsningen er at bruge Service Broker Activation :du opretter en service i databasen og vedhæfter en aktiveret procedure. I din ansøgning (eller ASP-side) sender du en besked til tjenesten og indlejrer de nødvendige parametre til din procedure. Når din ansøgning er forpligtet, aktiverer meddelelsen serviceproceduren. serviceproceduren læser parametrene fra meddelelsen og starter din procedure. da aktivering sker på en servertråd, der ikke er relateret til din oprindelige forbindelse, er dette pålideligt. Faktisk kan serveren endda lukke ned og genstarte mens din procedure udføres, og arbejdet vil blive rullet tilbage og derefter genoptaget, da aktiveringsmeddelelsen vil udløse serviceproceduren igen efter genstart.
Opdater
Jeg har offentliggjort detaljerne om, hvordan man gør dette, inklusive eksempelkode på min blog:Asynkron procedureudførelse .