
آیا می دانستید که ما می توانیم یک سرویس ویندوز ASP.NET را با سرویس ویندوز بدون استفاده از IIS میزبانی کنیم؟ مزیت هاست در سرویس ویندوز این است که پس از راه اندازی مجدد سرور، برنامه به طور خودکار راه اندازی مجدد می شود.
این قابلیت با کمک Worker Service Template پیاده سازی شده است که به نقطه شروعی برای نوشتن و ساخت اپلیکیشن های خدمات طولانی مدت تبدیل می شود. ما روی راه حلی بدون IIS تمرکز می کنیم، زیرا ممکن است همیشه در دسترس نباشد.
حتی در شرایطی که قبلاً IIS را راهاندازی کردهاید، ممکن است برنامههای NET Core را میزبانی نکند، چه رسد به ASP.NET Core. بنابراین، برای میزبانی آنها، باید پیاده سازی برنامه وب .NET Core را در ویژوال استودیو درک کنید.
چرا از یک برنامه وب به عنوان یک سرویس ویندوز استفاده کنیم؟
در شرایطی که میخواهید برنامههای NET Core را بدون IIS میزبانی کنید، میتوانیم با خود استقرار کار کنیم. در اینجا برنامه اساساً به عنوان یک فایل exe کار می کند.
برای راه اندازی یک محیط میزبانی ASP.NET 3.1 در سرویس ویندوز این مراحل را دنبال کنید.
1. یک برنامه ASP.NET Core 3.1 جدید در ویژوال استودیو ایجاد کنید
یک پروژه جدید در برنامه وب VS2019 .NetCore ایجاد کنید. هنگام ایجاد یک پروژه جدید در پوشه، نسخه 3.1 را مشخص کنید (عکس از صفحه را دنبال کنید).

2. برنامه ASP.Net Core را به عنوان یک سرویس ویندوز راه اندازی کنید
بعد از مرحله اول، زمان اجرای برنامه را مشخص کنید. ASP.NET Core از سیستم عامل هایی که سرویس های ویندوز در آنها اجرا نمی شوند نیز پشتیبانی می کند.
برای این کار باید فایل پروژه را تغییر دهیم. برای تغییر فایل پروژه، روی نام پروژه دوبار کلیک کنید و مطابق تصویر دو خط زیر را اضافه کنید.

با استفاده از بسته NuGet پیوند اضافه کنید Microsoft.ASPNetCore.Hosting.WindowsServices و Newtonsoft.json.
این پکیج همه چیزهایی را که برای اجرای برنامه ASP.Net Core به عنوان یک سرویس پنجره نیاز دارید، دارد.


اکنون برنامه را به عنوان یک سرویس ویندوز اجرا کنید و آن را در فایل Program.cs پیکربندی کنید. اگر می خواهید برنامه ای مانند IIS Express را اجرا کنید، نیازی به تغییر تنظیمات پیکربندی نیست و می توانیم برنامه ای مانند IIS Express را مستقیماً اجرا کنیم.
می توانیم پورت دیگری را در آن مشخص کنیم appsettings.json و appsettings.Devlopment.json فایل را برای اجرای مستقیم برنامه روی آن پورت با استفاده از سرویس ویندوز.
پورت № 5009 را مشخص کنید.
فایل appsettings.json:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "ServicePort" : 5009 } appsettings.Devlopment.json file: { "DetailedErrors": true, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ServicePort": 5009
ما همچنان به شفاف سازی خودمان ادامه می دهیم appsettings.json فایل به عنوان مسیر پیکربندی در Program.cs فایلی که به برنامه اجازه می دهد این مسیر را بخواند و روی این پورت کار کند. اسکرین شات های زیر را ببینید.
Program.csFile:


3. برنامه را ایجاد کنید و کد را منتشر کنید
با پیکربندی فوق تکمیل شده در Program.cs فایل شروع به ساخت برنامه می کند و سپس کد را در پوشه منتشر می کند.

4. برنامه را به عنوان WindowsService اجرا کنید
برای اجرای برنامه به عنوان یک سرویس ویندوز، مراحل زیر را دنبال کنید.
- یک خط فرمان با اجازه مدیر باز کنید.
- با استفاده از این دستور برنامه را به عنوان یک سرویس ویندوز ثبت کنید (فضای بعد از “binPath =” مورد نیاز است)
با استفاده از دستور زیر یک سرویس ویندوز ایجاد کنید:
sc create AspNetCoreWindowsServicebinPath = “مسیر برنامه من برای انتشار پوشه exe – سرویس”
در مثال بالا که گرفتیم AspNetCoreWindowsService به عنوان یک نام؛ شما می توانید از هر نامی که می خواهید نگه دارید استفاده کنید. همچنین، -سرویس نام استدلالی است که ما می گذرانیم Program.cs فایل.

لانه، باز کن services.msc و سرویس ویندوز میزبان خود را با نام مشاهده کنید AspNetCoreWindowsService برای شروع سرویس

وقتی سرویس شروع شد، مرورگر را باز کنید و به آن بروید http://localhost: 50009برای مشاهده اینکه برنامه وب در حال اجرا است. اگر به خاطر داشته باشید، ما پورت 5009 را در مراحل اولیه توسعه برنامه های وب اصلی ASP.NET تنظیم کرده بودیم. به طور خاص، به دنبال بخشی باشید که در آن به آن اشاره کردیم appsetting.json مانند بالا فایل کنید

با استفاده از دستور زیر سرویس ویندوز را حذف کنید:
قبل از راه اندازی نسخه جدید سرویس، نمونه در حال اجرا موجود را متوقف کنید. وقتی کارتان تمام شد، دستور زیر را بنویسید.
scdeleteAspNetCoreWindowsService
از نو، AspNetCoreWindowsService ونام سرویس ویندوز است که برای مثال برای شما مشخص کردیم.
برای خلاصه کردنش
این وبلاگ شما را طی مراحل راه اندازی یک محیط میزبانی برای توسعه برنامه وب ASP.NET Core 3.1 در سرویس ویندوز. اگرچه این فرآیند به اندازه کافی ساده است برای درک، ما در DEV IT تفاوت های ظریف را درک کرده اند و همه چیز را در مورد آن می دانند شیوه های توسعه انعطاف پذیر.
تجربه توسعه ما به ما این امکان را داده است که برنامه هایی ایجاد کنیم که بهترین عملکرد را در کلاس خود نشان می دهند و به شما کمک می کنند تا کسب و کار خود را به سطح بعدی ببرید. برای هر نوع خدمات توسعه اپلیکیشن موبایل با ما تماس بگیرید.
نشریه 4 مرحله آسان برای میزبانی یک برنامه وب اصلی ASP.NET در سرویس پنجره برای اولین بار در مجله DEV IT ظاهر شد.