سلام دوستان. می خواستم بدونم چجوری میتونم خطاهایی که در پروژه به وجود میاد رو کنترل کنم ؟
پروژه رو با Asp.net core نوشتم.
منظورم از خطا هر نوع خطایی هست که ممکنه به وجود بیاد. در واقع میخوام یک صفحه ای داشته باشم که پیغام بدم "خطایی در سیستم به وجود آمده است" و هر خطایی که رخ بده برنامه کرش نکنه و به این صفحه هدایت بشه
میتونید از middleware به نام UseExceptionHandler استفاده کنید.
روش کار :
1- ابتدا در فایل startup و متد Configure، کد زیر را اضافه کنید:
app.UseExceptionHandler("/your_view");
2- view مربوطه رو میتونید بنا بر سلیقه خودتون طراحی کنید.
برای کنترل خطا در Asp.net Core در کلاس Startup.cs و در فایل Configure قطعه کد زیر رو اضافه کنید. (دقت کنید که این قطعه کد به صورت پیش فرض وجود داره.)
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
خب همونطوری که می بینید یک آدرس در کد بالا وجود داره یعنی کنترلر Home و اکشن Error. پس در کنترلر Home این اکشن رو به وجود بیارید.
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
خب حالا یک View به نام Error در پوشه Views/Shared ایجاد کنید و متن مورد نظر خودتون جهت نمایش رو توی این ویو بنویسید. در این صورت وقتی خطایی رخ میده به جای کرش کردن یا نمایش کدهای برنامه ویوی Error نمایش داده میشه.
نکته : دقت کنید که شما باید در فایل launchsetting.json حتما مقدار متغیر ASPNETCORE_ENVIRONMENT رو برابر با Production قرار بدید.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:50691",
"sslPort": 44346
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
}
},
"WebAutomationSystem": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
}
}
}
}
کسب اطلاعات بیشتر در مورد Error Handling
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
215
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
598
- پاسخ :
1
|