دسته بندی ها
15:04 1399/05/17

رفع خطای 404 در Asp.net core

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2865
هوش مصنوعی

پاسخ هوش مصنوعی

برای رفع خطای 404 در ASP.NET Core، شما می توانید اقدامات زیر را انجام دهید:

1. بررسی آدرس URL: اطمینان حاصل کنید که URL وارد شده درست است و به مسیر درستی اشاره می کند.

2. پیکربندی Routing: حتماً بررسی کنید که تنظیمات Routing در فایل Startup.cs به درستی پیکربندی شده باشد. به عنوان مثال:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

3. استفاده از Middleware برای خطاهای 404: شما می توانید یک صفحه سفارشی برای خطای 404 اضافه کنید. به عنوان مثال، می توانید یک Action در Controller خود بسازید که با خطای 404 سرو کار دارد.

public class HomeController : Controller
{
    public IActionResult NotFoundPage()
    {
        return View();
    }
}

4. بازنویسی فایل Startup.cs: می توانید به صورت زیر Middleware را برای خطاهای 404 اضافه کنید:

app.UseStatusCodePages(async context =>
{
    if (context.HttpContext.Response.StatusCode == (int)HttpStatusCode.NotFound)
    {
        context.HttpContext.Request.Path = "/Home/NotFoundPage"; // مسیر صفحه سفارشی
        await context.Next();
    }
});

5. اطمینان از وجود صفحات و مسیرها: مطمین شوید که صفحات و action هایی که انتظار دارید وجود دارند و به درستی پیکربندی شده اند.

با دنبال کردن این مراحل، می توانید خطای 404 را رفع کنید یا مدیریت بهتری بر روی آن داشته باشید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : mohammad-i 10:49 1399/05/18

همان طور که میدونید خطای 404 وقتی رخ میده که آدرس مورد نظر پیدا نشه.

دلایل مختلفی میتونه داشه باشه مثل : اشتباه در Route - اشتباه در نام ویو یا کنترلر - ریدارکت اشتباه ...

پس ابتدا روت ها رو بررسی کنید و سپس اسامی.

به این پاسخ امتیاز بدهید    0
امتیاز: 260 رتبه: 7
پاسخ دهنده : saedbfd 13:24 1399/05/18

رفع خطای 404 در Asp.net Core

دلیل رخ دادن خطای 404 پیدا نشدن آدرسی هست که کاربر درخواست نمایش اون رو داده. کلا رخ دادن این خطا جالب نیست و شما باید به عنوان برنامه نویس پیغام مناسب رو نمایش بدید.

اما خوشبختانه برای کنترل خطای 404 در Asp.net Core پیش بینی های لازم وجود داره.

 

مراحل کنترل خطای 404 در Asp.net Core

  1. کلاس Startup.cs را باز کنید.
  2. در متد Configure قرار بگیرید و کدهای زیر را در این متد بنویسید:
//Error 404
app.Use(async (context, next) =>
    {
    await next();
    if (context.Response.StatusCode == 404)
    {
       context.Request.Path = "/Home/Err404";
       await next();
    }
});

 

خب همانطوری که می بینید در کد بالا توسط متد Response.StatusCode نوع خطاهای برگشتی از سایت رو میتونید کنترل کنیم. خب در این کد گفته شده که اگر خطای برگشتی مساوی با 404 بود کاربر اتوماتیک هدایت بشه به کنترلر Home و اکشن متد Err404

   3. حالا باید یک ویو به نام Err404 هم درست کنید و پیغام مناسب رو اونجا به کاربر نمایش بدید. 

 

 

در مورد خطاها در Asp.net core و نحوه رفع اونها میتونید به این لینک هم مراجعه کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود