asp.net mvc - एसिंक्रोनस एचटीटीपी मॉड्यूल एमवीसी



asp.net-mvc async-await (1)

तो आपके पास एक तुल्यकालिक एचटीटीपी मॉड्यूल इवेंट हैंडलर में एसिंक्रोनस कोड है, और एएसपी.नेट एक अपवाद बताता है कि असिंक्रोनस ऑपरेशन केवल एसिंक्रोनस हैंडलर / मॉड्यूल के भीतर शुरू किया जा सकता है। मुझे बहुत सीधा लगता है

इसे ठीक करने के लिए, आपको सीधे BeginRequest सदस्यता नहीं लेनी चाहिए; इसके बजाय, एक Task रिटर्निंग "हेन्डलर" बनाएं, इसे इवेंटहैंडलर TaskAsyncHelper में लपेटें, और इसे AddOnBeginRequestAsync पास करें।

कुछ इस तरह:

private async Task ContextBeginRequest(object sender, EventArgs e)
{
  HttpContext context = ((HttpApplication)sender).Context;
  await ProcessImageAsync(context);

  // Side note; if all you're doing is awaiting a single task at the end of an async method,
  //  then you can just remove the "async" and replace "await" with "return".
}

और सदस्यता लेने के लिए:

var wrapper = new EventHandlerTaskAsyncHelper(ContextBeginRequest);
application.AddOnBeginRequestAsync(wrapper.BeginEventHandler, wrapper.EndEventHandler);

मेरे पास एक तुल्यकालिक एचटीटीपी मॉड्यूल है जिसमें निम्नलिखित कोड है I

    /// <summary>
    /// Occurs as the first event in the HTTP pipeline chain of execution 
    /// when ASP.NET responds to a request.
    /// </summary>
    /// <param name="sender">The source of the event.</param>
    /// <param name="e">An <see cref="T:System.EventArgs">EventArgs</see> that 
    /// contains the event data.</param>
    private async void ContextBeginRequest(object sender, EventArgs e)
    {
        HttpContext context = ((HttpApplication)sender).Context;
        await this.ProcessImageAsync(context);
    }

जब मैं एक खाली MVC4 अनुप्रयोग (नेट 4.5) से मॉड्यूल को चलाने का प्रयास करता हूं, तो मुझे निम्नलिखित त्रुटि मिलती है I

इस समय अतुल्यकालिक ऑपरेशन प्रारंभ नहीं किया जा सकता है। असिंक्रोनस ऑपरेशन केवल अतुल्यकालिक हैंडलर या मॉड्यूल या पृष्ठ जीवन चक्र में कुछ ईवेंट के दौरान शुरू किया जा सकता है। यदि पृष्ठ निष्पादित करते समय यह अपवाद उत्पन्न होता है, तो सुनिश्चित करें कि पृष्ठ <% @ पेज असिनक = "सच"%> चिह्नित है।

मुझे लगता है कि ऐसा कुछ नहीं है, लेकिन मेरे पढ़ने से यह त्रुटि वास्तव में नहीं होनी चाहिए।

मुझे चारों ओर खिसकना पड़ा है, लेकिन मुझे मदद करने के लिए कुछ भी नहीं मिल सकता है, क्या किसी के पास कोई विचार है?





httpmodule