6

Nel mio progetto ASP.NET MVC 3 sto chiamando un servizio Web per l'autenticazione di accesso. Ma viene generata un'eccezione:Un'operazione asincrona non può essere avviata in questo momento Si verifica un'eccezione quando si chiama WebService?

Asynchronous Exception

Dettagli eccezione:

Un'operazione asincrona non può essere avviato in questo momento. Le operazioni asincrone possono essere avviate solo all'interno di un gestore o modulo asincrono o durante determinati eventi nel ciclo di vita della pagina. Se si è verificata questa eccezione durante l'esecuzione di una pagina, assicurarsi che la pagina sia contrassegnata con <% @ Page Async = "true"%>.

Come risolvere questo problema?

+0

Come viene dichiarata l'azione del controller? È 'async'? –

+0

puoi anche creare un altro thread per il processo che richiede tempo :). i metodi asincroni creano anche un altro thread internamente –

+0

Assicurarsi che il controller restituisca un'attività asincrona o nulla e la chiamata attende nel metodo asincrono. –

risposta

4

Assicurarsi che il metodo Controller restituisca un'attività asincrona.

public class ServiceController : Controller 
{ 
    public async Task<ActionResult> Index() 
    {  
     var service = new Service(); 
     await service.CallMethodAsync();  
     return View(); 
    } 
} 

In sostanza, la documentazione è scritto in un modo in cui credono si sta utilizzando solo ASP.NET WebForms, però, ovviamente, è possibile utilizzare questo nelle applicazioni MVC troppo, così la loro documentazione deve essere aggiornato.

+0

Perdita di attività HttpContext è un grosso problema – nim