معرفی
در این مقاله، مدل های میزبانی مختلف ارائه شده توسط ASP.NET Core 3.1 را مورد بحث قرار خواهیم داد. هنگامی که برنامه وب خود را با موفقیت توسعه دادید، قدم بعدی که باید انجام دهید چیست؟ پاسخ میزبانی است. ما باید اپلیکیشن خود را روی سرور میزبانی کنیم تا افراد دیگر بتوانند به آن دسترسی داشته باشند. فرآیند استقرار/نصب یک برنامه کاربردی در سرور "Hosting" نامیده می شود.
هر زمان که یک برنامه ASP.NET Core ایجاد می کنید، به طور پیش فرض حاوی یک سرور داخلی است که توسط یک هسته دات نت ارائه می شود که Kestrel نام دارد. با توجه به این سرور، ما می توانیم برنامه های ASP.NET Core را بر روی هر پلتفرمی مانند ویندوز، مک یا لینوکس اجرا کنیم. قبل از پرداختن به جزئیات در مورد مدل های میزبانی، اجازه دهید ابتدا ببینیم سرور Kestrel چیست.
سرور Kestrel چیست؟
Kestrel یک وب سرور بین پلتفرمی برای ASP.NET Core است. Kestrel وب سروری است که به طور پیش فرض در قالب های پروژه ASP.NET Core گنجانده شده است.
برخی از ویژگی های Kestrel:
- از SSL پشتیبانی می کند
- از SSL پشتیبانی می کند
- سبک وزن
- کراس پلت فرم
میزبانی مدل ها در ASP.NET Core
2 نوع مدل میزبانی در ASP.NET Core وجود دارد یعنی میزبانی در فرآیند و میزبانی خارج از فرآیند. قبل از ASP.Net Core 2.2 ما فقط یک مدل میزبانی داریم که خارج از فرآیند است اما بعد از آن به دلیل عملکرد، مدل In Process Hosting را در نسخه های 2.2+ داریم.
مدل میزبانی خارج از فرآیند
در مدلهای میزبانی خارج از فرآیند، میتوانیم مستقیماً از سرور Kestrel به عنوان یک سرور رو به درخواست کاربر استفاده کنیم یا میتوانیم برنامه را در IIS مستقر کنیم که به عنوان یک سرور پراکسی عمل میکند و درخواستها را به سرور Kestrel داخلی ارسال میکند. در این نوع مدل هاست دو گزینه داریم: