কম্পিউটার

মিডলওয়্যার C# Asp.net কোরে ত্রুটিগুলি কীভাবে পরিচালনা করবেন?


CustomExceptionMiddleware নামে একটি নতুন ফোল্ডার এবং এর ভিতরে একটি classExceptionMiddleware.cs তৈরি করুন৷

আমাদের প্রথমে যা করতে হবে তা হল আমাদের IloggerManager পরিষেবা এবং RequestDelegate-কে নির্ভরতা ইনজেকশনের মাধ্যমে নিবন্ধন করা।

RequestDeleagate প্রকারের _Next প্যারামিটার হল একটি ফাংশন ডেলিগেট যা আমাদের HTTP অনুরোধগুলি প্রক্রিয়া করতে পারে।

রেজিস্ট্রেশন প্রক্রিয়ার পরে, আমাদের InvokeAsync() পদ্ধতি তৈরি করতে হবে৷ RequestDelegate এটি ছাড়া অনুরোধগুলি প্রক্রিয়া করতে পারে না৷

_পরবর্তী প্রতিনিধির অনুরোধটি প্রক্রিয়া করা উচিত এবং আমাদের নিয়ন্ত্রকদের কাছ থেকে পদক্ষেপ গ্রহণ একটি সফল প্রতিক্রিয়া তৈরি করা উচিত। কিন্তু যদি একটি অনুরোধ অসফল হয় (এবং এটি হয়, কারণ আমরা ব্যতিক্রম বাধ্যতামূলক করছি),

আমাদের মিডলওয়্যার ক্যাচ ব্লক ট্রিগার করবে এবং HandleExceptionAsyncmethod কল করবে।

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());
   }
}

আমাদের ব্যতিক্রম মিডলওয়্যার এক্সটেনশন ক্লাসটি অন্য একটি স্ট্যাটিক পদ্ধতি -

দিয়ে পরিবর্তন করুন
public static void ConfigureCustomExceptionMiddleware(this IApplicationBuilder
app){
   app.UseMiddleware<ExceptionMiddleware>();
}

স্টার্টআপ ক্লাস -

-এ কনফিগার পদ্ধতিতে এই পদ্ধতিটি ব্যবহার করুন
app.ConfigureCustomExceptionMiddleware();

  1. C# ASP.NET WebAPI-তে স্বীকার শিরোনাম সহ সংস্করণ কীভাবে করবেন?

  2. C# ASP.NET WebAPI-তে Querystring প্যারামিটারের সাথে সংস্করণ কিভাবে করবেন?

  3. কিভাবে C# ASP.NET WebAPI-তে URI-এর সাথে ওয়েব API সংস্করণ করবেন?

  4. কিভাবে C# ASP.NET WebAPI এ CORS সমস্যা সমাধান করবেন?