با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش asp.net core در خدمت شما دوستان هستیم . در این جلسه به معرفی میان افزار در ASP.NET Core بخش دوم و پیکربندی چندین میان افزار می پردازیم تا پایان این جلسه با ما همراه باشید.
در ASP.NET Core مواقعی بسیاری احتیاج داریم که چندین میان افزار باهم به صورت پیوسته اجرا شوند. به کد های زیر دقت کنید که از دو متد Run به صورت پیوسته استفاده شده است اما همیشه اولین متد است که اجراء می شود و هرگز متد Run دوم اجراء نخواهد شد:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.Run(async (context) => { await context.Response.WriteAsync("Hello World From 1st Middleware"); }); // the following will never be executed app.Run(async (context) => { await context.Response.WriteAsync("Hello World From 2nd Middleware"); }); } |
برای تنظیم چندین میان افزار، از متد توسعه یافته (extension method) Use استفاده می کنیم . دقیقا مشابه متد Run عمل می کنیم به جز اینکه در این صورت کدهایمان شامل پارامتر بعدی برای فراخوانی میان افزار بعدی در توالی است.
مثال زیر را در نظر بگیرید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.Use(async (context, next) => { await context.Response.WriteAsync("Hello World From 1st Middleware!"); await next(); }); app.Run(async (context) => { await context.Response.WriteAsync("Hello World From 2nd Middleware"); }); } |
با اجرای کدهای بالا ابتدا جمله “!Hello World From 1st Middleware” سپس جمله “!Hello World From 2nd Middleware” در نمایشگر چاپ خواهد شد.
بنابراین، ما می توانیم از متد Use برای پیکربندی چندین میان افزار استفاده کنیم.
می توانیم برخی از میان افزارهایی را که نیاز داریم به صورت آماده از مرجع NuGet دریافت کنیم. در مرجع NuGet میان افزارهای بسیاری وجود دارد که میتوانند نیاز ما را برطرف کنند.
در ادامه برخی از میان افزارهای آماده ای که از مرجع NuGet قابل دریافت می باشند را شرح می دهیم:
توضیحات | میان افزار |
اضافه کردن قابلیت احراز هویت | Authentication |
تنظیم منابع اشتراک متقابل (Cross-Origin Resource) | CORS |
اضافه کردن قابلیت های مسیریابی برای MVC یا web form | Routing |
اضافه کردن قابلیت پشتیبانی از session کاربر | Session |
اضافه کردن قابلیت پشتیبانی از سرویس فایل های استاتیک و مرور دایرکتوری | StaticFiles |
اضافه کردن قابلیت پشتیبانی از گزارش گیری و اداره استثنائات (exceptions) و خطاها | Diagnostics |
در ادامه با میان افزار Diagnostics بیشتر آشنا میشوید.
این میان افزار برای گزارشگیری ، مدیریت خطاها و استثناها برنامه، مدیریت خطاهای NET Core. ،خطاهای مربوط به Entity Framework و … استفاده می شود.
به منظور افزودن این میان افزار به برنامه فایل Project.json باز کرده و سپس Microsoft.AspNetCore.Diagnostics را به پروژه اضافه می کنیم ، ممکن کمی طول بکشد تا ویژوال استادیو آن را به پروژه اضافه کند.
این بسته شامل متد های میان افزار و متدهای توسعه یافته (extension methods) می باشد که در جدول زیر برخی از آنها آورده شده اند:
توضیحات | متدهای توسعه یافته | میان افزار ها |
استثناهای همزمان و غیر همزمان را دریافت کرده و پاسخ خطای HTML را تولید می کند. | UseDeveloperExceptionPage() | DeveloperExceptionPageMiddleware |
استثنا ها را دریافت کرده ،از آنها لگ (LOG) گرفته و مجددا آنها را اجرا می کند. | UseExceptionHandler() | ExceptionHandlerMiddleware |
خطاهای مربوط به صفحه از کدهای بین ۴۰۰ تا ۵۹۹ را بررسی می کند. | UseStatusCodePages() | StatusCodePagesMiddleware |
نمایش صفحه خوش آمدید برای مسیر ریشه. | UseWelcomePage() | WelcomePageMiddleware |
می توانیم این میان افزار ها را در فایل Startup.cs قرار داده و با شروع برنامه آنها را هم اجراء کنیم :
در ادامه میان افزار welcomePage را به برنامه اضافه می کنیم و از آن خروجی می گیریم.
1 2 3 4 5 | public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseWelcomePage(); //other code removed for clarity } |
با هر بار اجرای برنامه ، صفحه زیر نمایش داده می شود.
در بخش بعدی با چگونگی پیاده سازی Logging را در ASP.NET Core آشنا خواهید شد.