खोज…


कस्टम त्रुटि पृष्ठ पर पुनर्निर्देशित करें

ASP.NET Core स्टेटस कोड पेज मिडलवेयर प्रदान करता है, जो कई अलग-अलग एक्सटेंशन विधियों का समर्थन करता है, लेकिन हम UseStatusCodePages और UseStatusCodePagesWithRedirects में दिलचस्प हैं:

  • UseStatusCodePages दिए गए विकल्पों के साथ एक StatusCodePages मिडलवेयर जोड़ता है जो 400 और 599 के बीच स्थिति कोड के साथ प्रतिक्रियाओं के लिए जाँच करता है जिसमें शरीर नहीं है। पुनर्निर्देशन के लिए उपयोग का उदाहरण:

    app.UseStatusCodePages(async context => {
      //context.HttpContext.Response.StatusCode contains the status code
    
      // your redirect logic
    
    });
    
  • UseStatusCodePagesWithRedirects पाइपलाइन के लिए एक StatusCodePages मिडलवेयर जोड़ता है। निर्दिष्ट करता है कि प्रतिक्रियाओं को दिए गए स्थान URL टेम्पलेट के साथ पुनर्निर्देशित करके नियंत्रित किया जाना चाहिए। इसमें स्थिति कोड के लिए '{0}' प्लेसहोल्डर शामिल हो सकता है। '~' से शुरू होने वाले URL में PathBase पहले से लिखा होगा, जहाँ किसी भी अन्य URL का उपयोग किया जाएगा। उदाहरण के लिए निम्नलिखित ~ / त्रुटियों / <error_code> के लिए रीडायरेक्ट करेगा (उदाहरण के लिए ~ / त्रुटियों / 403 403 त्रुटि के लिए):

    app.UseStatusCodePagesWithRedirects("~/errors/{0}");
    

ASP.NET कोर में वैश्विक अपवाद हैंडलिंग

UseExceptionHandler का उपयोग विश्व स्तर पर अपवादों को संभालने के लिए किया जा सकता है। आप स्टैक ट्रेस, इनर अपवाद और अन्य जैसे अपवाद वस्तु के सभी विवरण प्राप्त कर सकते हैं। और फिर आप उन्हें स्क्रीन पर दिखा सकते हैं। आप इस तरह से आसानी से लागू कर सकते हैं।

app.UseExceptionHandler(
 options => {
    options.Run(
    async context =>
    {
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      context.Response.ContentType = "text/html";
      var ex = context.Features.Get<IExceptionHandlerFeature>();
      if (ex != null)
      {
        var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
        await context.Response.WriteAsync(err).ConfigureAwait(false);
      }
    });
 }
);

आपको इसे स्टार्टअप के अंदर () फाइल में डालना होगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow