qual è la differenza nel chiamare un servizio Web usando la chiamata asincrona rispetto all'attività asincrona

StackOverflow https://stackoverflow.com/questions/1028018

Domanda

Qual è la differenza tra le chiamate asincrone dei servizi Web e le attività asincrone.

Stiamo lavorando a un'applicazione ASP.NET che richiede di effettuare una chiamata a un metodo di servizio Web che elaborerà migliaia di righe di dati. Questo processo di solito richiede tra 2 e 3 minuti (forse più forse meno dipende dalla quantità di dati). Quindi corriamo sempre in Timeout su quella pagina specifica.

Quindi abbiamo deciso di smettere di chiamare questo metodo di servizio Web in modo asincrono, ma abbiamo avuto un conflitto causato dal gestore HTTP di uno dei componenti dell'interfaccia utente che stiamo utilizzando. Fortunatamente in quel caso abbiamo potuto rimuovere la pagina dalle direttive httphandler.

Finora nessun problema, ma qui arriva la domanda, un collega scopre che possiamo usare al posto di Asynchronous Webs Services Call, racchiudere una chiamata sincrona in un'attività asincrona nella pagina ASP.NET ed essere in grado di mantenere il dirige al componente ed esegue il metodo del servizio Web senza ottenere un timeout.

Quindi ora la mia preoccupazione è che tipo di problemi possiamo trovare usando le attività asincrone invece di una chiamata asincrona.

Grazie in anticipo.

È stato utile?

Soluzione

I servizi Web non dovrebbero essere usati in questo modo. C'è un motivo per cui i timeout HTTP sono così bassi. Dovresti fare in modo che il servizio Web attivi l'attività impostando un flag nel DB su cui raccoglie un servizio effettivo o il servizio Web dovrebbe generare un processo.

Altri suggerimenti

Se capisco il tuo scenario, non dovrebbero esserci problemi. In entrambi i casi, la tua pagina è asincrona. In entrambi i casi, non si attende il completamento del servizio: si rinuncia al thread della richiesta mentre il servizio è in esecuzione. In entrambi i casi, l'esecuzione della tua pagina impiega lo stesso tempo che avrebbe se avessi chiamato il servizio in modo sincrono.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top