Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# ASP.NET Core में मिडलवेयर में त्रुटियों को कैसे संभालें?


CustomExceptionMiddleware नामक एक नया फोल्डर बनाएं और उसके अंदर ExceptionMiddleware.cs क्लास बनाएं।

पहली चीज जो हमें करने की आवश्यकता है वह है अपने IloggerManager सर्विस और RequestDelegate को डिपेंडेंसी इंजेक्शन के माध्यम से रजिस्टर करना।

RequestDelegate प्रकार का _next पैरामीटर एक फंक्शन डेलीगेट है जो हमारे HTTP रिक्वेस्ट को प्रोसेस कर सकता है।

रजिस्ट्रेशन प्रक्रिया के बाद, हमें InvokeAsync() मेथड बनाने की आवश्यकता है। इसके बिना RequestDelegate रिक्वेस्ट प्रोसेस नहीं कर सकता।

_next डेलीगेट को रिक्वेस्ट प्रोसेस करना चाहिए और हमारे कंट्रोलर से Get एक्शन को एक सफल प्रतिक्रिया उत्पन्न करनी चाहिए। लेकिन अगर रिक्वेस्ट असफल होती है (और यह है, क्योंकि हम एक्सेप्शन फोर्स कर रहे हैं),

तो हमारा मिडलवेयर कैच ब्लॉक को ट्रिगर करेगा और HandleAsync मेथड को कॉल करेगा।

public class ExceptionMiddleware{    private readonly RequestDelegate _next;    private readonly ILoggerManager _logger;    public ExceptionMiddleware(RequestDelegate next, ILoggerManager logger){       _logger = logger;       _next = next;    }    public async Task InvokeAsync(HttpContext httpContext){       try{             await _next(httpContext);       }       catch (Exception ex){          _logger.LogError($"Something went wrong: {ex}");          await HandleExceptionAsync(httpContext, ex);       }    }    private Task HandleExceptionAsync(HttpContext context, Exception exception){       context.Response.ContentType = "application/json";       context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;       return context.Response.WriteAsync(new ErrorDetails(){          StatusCode = context.Response.StatusCode,          Message = "Internal Server Error from the custom middleware."       }.ToString());    } }

हमारे ExceptionMiddlewareExtensions क्लास को एक और स्टैटिक मेथड के साथ संशोधित करें -

public static void ConfigureCustomExceptionMiddleware(this IApplicationBuilder app){    app.UseMiddleware<ExceptionMiddleware>(); }

Startup क्लास में Configure मेथड में इस मेथड का उपयोग करें -

app.ConfigureCustomExceptionMiddleware();
  1. C# ASP.NET WebAPI में क्वेरीस्ट्रिंग पैरामीटर के साथ वर्जनिंग कैसे करें? C# ASP.NET WebAPI में क्वेरीस्ट्रिंग पैरामीटर के साथ वर्जनिंग कैसे करें?

    Web API में DefaultHttpControllerSelector क्लास उस उपयुक्त कंट्रोलर एक्शन मेथड का चयन करने के लिए जिम्मेदार है जिसे हम URI में भेजते हैं। मान लीजिए हमें क्वेरी स्ट्रिंग में वर्जनिंग लागू करनी है जैसे नीचे: v=1 StudentsV1Controller (Version 1) v=2 StudentsV2Controller (Version 2) यदि हम वर्जनिंग

  1. C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें? C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

    एक बार Web API सर्विस पब्लिक हो जाने के बाद, विभिन्न क्लाइंट एप्लिकेशन हमारी Web API सर्विसेज का उपयोग करना शुरू कर देते हैं। जैसे-जैसे व्यवसाय बढ़ता है और आवश्यकताएं बदलती हैं, हमें सर्विसेज को भी बदलना पड़ सकता है, लेकिन सर्विसेज में परिवर्तन इस तरह से किए जाने चाहिए कि कोई मौजूदा क्लाइंट एप्लिकेश

  1. C# ASP.NET WebAPI में CORS समस्या कैसे हल करें? C# ASP.NET WebAPI में CORS समस्या कैसे हल करें?

    क्रॉस-ओरिजिन रिसोर्स शेयरिंग (CORS) एक ऐसा तंत्र है जो ब्राउज़रों को यह बताने के लिए अतिरिक्त HTTP हेडर्स का उपयोग करता है कि एक ओरिजिन पर चल रहे वेब एप्लिकेशन को किसी अलग ओरिजिन से चुनिंदा रिसोर्सेज तक पहुंच दी जाए। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिन HTTP रिक्वेस्ट निष्पादित करता है जब वह किसी ऐसे रि