مشخصات مقاله
-
1225
-
0.0
-
3993
-
0
-
0
آموزش رفع خطای صفحات ASP.Net MVC Core
ASP.NET Core 2.0 Error Pages
مشکل
صفحات خطا(error pages) را در برنامه ASP.NET Core ارائه دهید.
راه حل
نحوه ایجاد کردن یک پروژه خالی را در مقاله (ASP.NET CORE 2.0 EMPTY PROJECT) آموزش دادیم.ابتدا یک پروژه خالی ایجاد کنید و سپس متد Configure() از کلاس Startup را از middleware مورد نیاز برای هندل کردن error استفاده کنید.در زیر من از یک middleware سفارشی (تعریف شده به عنوان lambda) برای رسیدگی به exceptions های تولید شده استفاده می کنم:
public void Configure(
IApplicationBuilder app,
IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler(appBuilder =>
{
appBuilder.Run(async context =>
{
var feature =
context.Features.Get();
var exception = feature.Error;
await context.Response.WriteAsync(
$"< b >Oops!< /b > {exception.Message}");
});
});
}
app.Run(async (context) =>
{
throw new ArgumentException("T must be set");
await context.Response.WriteAsync("Hello Error Handling!");
});
}
به طور خلاصه شما می توانید به controller / action اشاره کنید که یک ViewResult را بازگرداند:
app.UseExceptionHandler("/Error");
مباحثه
این واقعا ساده است که middleware را برای تنظیم صفحات خطا(error pages) برای محیط های development و production پیکربندی کنید.
error page برای محیط توسعه تمامی جزئیات مربوطه را که developers ها برای حل مشکل نیاز دارند را نشان می دهند. با این حال، این صفحه برای تولید / end-user مناسب نیست، این صفحه اطلاعات بیش از حدی را که می تواند مخرب باشد و مورد استفاده قرار گیرد را نشان میدهد
دو راه وجود دارد که ما می توانیم صفحه های خطای user و تولید(production) را نمایش دهیم:
- پلاگین middleware را به UseExceptionHandler (که خود یک middleware است) اضافه کنید. این باعث می شود انعطاف پذیری بیشتری در نحوه ساخت یک پاسخ خطا ایجاد شود.
- مسیری را برای MVC Controller/action ایجاد کنید و صفحه خطا را با استفاده از MVC Views ایجاد کنید. توجه داشته باشید که مسیر باید با '/' آغاز شود.
بهتر است فقط از محتوای static در صفحات خطا استفاده کنید تا از exception اجتناب کنید.
شما می توانید Source Code این مقاله را از لینک زیر دانلود کنید: