Domanda

Ho fatto un gestore personalizzato che deriva da MvcHandler. Ho i miei percorsi utilizzando un RouteHandler personalizzato che restituisce il mio nuovo gestore per GetHttpHandler (), e sovrascrivo ProcessRequest () nel mio gestore personalizzato. La chiamata a GetHttpHandler sta provocando un punto di interruzione e il costruttore del mio gestore è sicuramente chiamato, ma BeginProcessRequest () viene chiamato sulla base MvcHandler invece di ProcessRequest ().

Perché i metodi asincroni viene chiamato quando non ho fatto nulla di chiamarli? Non voglio la gestione asincrona, e certamente non ho fatto niente esplicito per ottenerlo. I miei controllori tutte derivano da controller, non AsyncController.

Non ho il codice sorgente con me in questo momento, ma posso aggiungere in un secondo momento, se necessario. Speravo che qualcuno potrebbe conoscere alcune delle ragioni per cui BeginProcessRequest potrebbe essere chiamato quando non è voluto.

È stato utile?

Soluzione

Brad Wilson ha risposto al mio post sul forum ASP.NET con la seguente risposta http: / /forums.asp.net/t/1547898.aspx :

  

Risposta breve: Sì.

     

Con l'aggiunta di AsyncController,   la classe MvcHandler deve essere un   IHttpAsyncHandler ora, i quali mezzi   che per quanto riguarda il nucleo ASP.NET   runtime è interessato, i punti di ingresso   sono ora BeginProcessRequest e   EndProcessRequest, non ProcessRequest.

Sembra ProcessRequest non viene anche chiamato più, ma potrei sbagliarmi. Posso dire che non ho visto nel mio test.

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