راهنمای جامع نصب .NET Core روی سرور ویندوز و آشنایی با مفاهیم آن

اگر در دنیای میزبانی وب و سرور با وبسایتها یا اپلیکیشنهای جدید سروکار داشته باشید، حتما نام .NET Core را شنیدهاید. در این مقاله قصد داریم ابتدا به زبان ساده بررسی کنیم که .NET Core چیست و سپس مراحل گامبهگام و عملی نصب و پیکربندی آن را روی ویندوز سرور برای اتصال به وبسرور IIS بررسی کنیم.
.NET Core چیست؟
در گذشته مایکروسافت ابزاری به نام .NET Framework داشت که فقط روی ویندوز اجرا میشد و برای ساخت برنامهها و سایتهای ویندوزی استفاده میشد. اما مایکروسافت برای عقب نماندن از دنیای مدرن، این ابزار را کاملا بازنویسی کرد و نام آن را .NET Core گذاشت. از نسخه ۵ به بعد نیز نام آن به شکل خلاصه به .NET تغییر یافت.
.NET Core یک پلتفرم متنباز (Open Source) و چندسکویی (Cross-Platform) است. این یعنی برنامهای که با .NET Core نوشته میشود، برخلاف گذشته محدود به ویندوز نیست و میتوان آن را روی لینوکس و مک نیز نصب و اجرا کرد. این ابزار سرعت فوقالعاده بالا، بهینهسازی عالی برای فضاهای ابری و امنیت بسیار بالایی دارد و به همین دلیل امروزه بیشتر برنامهنویسان مایلند پروژههای خود را با آن توسعه دهند.
وقتی یک برنامه با .NET Core نوشته میشود، برای اجرا روی سرور ویندوزی نیاز به یک محیط واسط دارد تا درخواستهای کاربران را از وبسرور IIS تحویل گرفته و به برنامه منتقل کند. در ادامه نحوه راهاندازی این زیرساخت را قدمبهقدم بررسی میکنیم.
پیشنیازها و آمادهسازی ویندوز سرور
پیش از شروع فرآیند نصب، سیستمعامل سرور باید آمادگی لازم را برای میزبانی سرویسهای تحت وب داشته باشد.
اولین قدم، فعالسازی نقش وبسرور (IIS) روی ویندوز سرور است. اگر این ابزار از قبل نصب نشده باشد، فرآیند نصب .NET Core با اختلال مواجه میشود، زیرا ماژول اتصال به IIS برای استقرار روی سرور به ساختار اولیه IIS نیاز دارد.
همچنین در نسخههای قدیمیتر ویندوز سرور، نصب بستههای پیشنیاز Visual C++ Redistributable برای جلوگیری از خطاهای ناشناخته در ثبت لاگهای ویندوز الزامی است.
فعالسازی ابزار IIS روی ویندوز سرور
پیکربندی نقش وبسرور از طریق محیط مدیریت سرور انجام میشود. این فرآیند ساختار لازم را برای ایجاد سایتها در مراحل بعدی فراهم میکند.
ابتدا برنامه Server Manager را باز کنید و گزینه Add Roles and Features را انتخاب کنید.
در بخش Server Roles، تیک مربوط به Web Server (IIS) را فعال کنید. ابزارهای پیشفرض مدیریتی IIS را تایید کرده و فرآیند نصب را به پایان برسانید تا وبسرور روی ویندوز فعال شود.
دانلود و نصب .NET Core Hosting Bundle
مهمترین بخش عملیات، نصب بسته میزبانی داتنت روی سرور است. این بسته شامل سه بخش کلیدی است: محیط اجرای کدها (Runtime)، محیط اجرای وبسایتها (ASP.NET Core Runtime) و ماژول اختصاصی اتصال IIS به برنامه شما (ASP.NET Core Module).
دقت داشته باشید که نسخه پکیج انتخابی کاملا با نسخهای که برنامه توسعهدهنده با آن کامپایل شده است، همخوانی داشته باشد. برای دانلود .Net Core به سایت مورد نظر مراجعه کنید.
دانلود پکیج رسمی مایکروسافت
در گام نخست، شما باید بسته نرمافزاری مربوطه را مستقیما از سرورهای رسمی دریافت کنید. برای این کار به وبسایت رسمی مایکروسافت مراجعه کرده و به بخش دانلودهای مربوط به .NET بروید. با توجه به نسخه دقیق پروژه خود، آخرین نسخه ابزار Hosting Bundle را پیدا کنید. توجه داشته باشید که حتما باید گزینهای را دانلود کنید که شامل بسته میزبانی و ماژول IIS باشد تا ارتباط میان وبسرور و هسته برنامه به درستی شکل بگیرد.
اجرای فایل نصبی با دسترسی ادمین
پس از اتمام دانلود فایل، به پوشه دانلودها در سرور بروید. از آنجایی که این ابزار قرار است تغییراتی در سطح سیستمعامل و هسته وبسرور ایجاد کند، حتما روی فایل دانلود شده راستکلیک کرده و گزینه Run as administrator را انتخاب کنید. در پنجره باز شده، تیک تایید شرایط لایسنس و قوانین استفاده را بزنید و سپس روی دکمه Install کلیک کنید تا فرآیند استخراج متغیرها آغاز شود.
راهاندازی مجدد سرویس وب برای اعمال تغییرات
پس از پایان نصب، برای شناسایی کامل مسیرهای جدید سیستم و متغیرهای محیطی توسط وبسرور، یک بار سرویس وب باید ریاستارت شود. در بسیاری از مواقع عدم انجام این کار باعث میشود سرور ماژول جدید را شناسایی نکند. برای اعمال صحیح تغییرات، خط فرمان (CMD) یا پاورشل را با دسترسی ادمین باز کرده و دستورات زیر را در آن اجرا کنید تا سرویس وبسرور یک بار کاملا متوقف و مجددا راهاندازی شود:
net stop was /y net start w3svc
تنظیمات Application Pool در IIS
اپلیکیشنهای .NET Core بر خلاف داتنت فریمورک قدیمی، کدهای خود را درون خود برنامه اجرا و مدیریت میکنند. به همین دلیل نیازی نیست که کامپایلر قدیمی ویندوز روی مدیریت Application Pool سایت تاثیر بگذارد.
برای اعمال این پیکربندی، ابتدا وارد محیط مدیریت IIS شوید و از منوی درختی سمت چپ، به بخش Application Pools بروید.
روی پول اختصاصی وبسایت خود راستکلیک کرده و Advanced Settings را انتخاب کنید.
سپس گزینه .NET CLR Version را پیدا کرده و مقدار آن را دقیقا روی گزینه No Managed Code تنظیم کنید. این تنظیم به IIS میگوید که وظیفه مدیریت کدهای داتنت را به کلی به ماژول داخلی خود پروژه بسپارد و خود تنها نقش هدايتکننده ترافیک را داشته باشد.
استقرار و اجرای پروژه
پس از انجام تنظیمات زیرساختی، نوبت به قرار دادن فایلهای پروژه میرسد. پروژه .NET Core پس از خروجی گرفتن، شامل فایلهایی با پسوند .dll، فایل پیکربندی appsettings.json و یک فایل به نام web.config است.
فایلهای پروژه را در مسیر مشخصی از هارد دیسک سرور (مثلا در مسیر پیشفرض C:\inetpub\wwwroot\myapp) قرار دهید. در ساختار تعریف سایت جدید در IIS، مسیر فیزیکی را روی این پوشه تنظیم کنید و دسترسیهای خواندن و نوشتن کاربر پردازشی مربوطه را، روی پوشه مربوطه بررسی کنید تا سایت بدون مشکل بالا بیاید.
عیبیابی خطاهای متداول
هنگام بالا آوردن پروژهها روی ویندوز سرور، احتمال مواجهه با برخی خطاهای داخلی وجود دارد. در این بخش دو مورد از پرتکرارترین خطاها را بررسی میکنیم.
خطای ۵۰۰.۳۰ (HTTP Error 500.30 – In-Process Startup Failure): این خطا نشان میدهد وبسرور کار خود را به درستی انجام داده اما برنامه شما در حین لود شدن اولیه کرش کرده است. برای حل این مشکل، ارتباط دیتابیس در فایل تنظیمات، وجود متغیرهای محیطی یا خطاهای ساختاری در فایل متد استارتآپ برنامه را بازبینی کنید. فعال کردن موقت قابلیت ثبت لاگها در فایل کانفیگ وب به جهت بررسی ریشه خطا کمک شایانی به رفع این مشکل میکند.
خطای نامشخص و عدم شناسایی دستور در سیستم: اگر پس از نصب هاستینگ باندل همچنان سرور قادر به خواندن دستورات نیست، دلیل آن عدم هماهنگی متغیرهای سیستم پس از فرآیند نصب است. با ریاستارت کامل سیستمعامل سرور یا اجرای دستی دستور راهاندازی وبسرور که در بخشهای قبلی ذکر شد، این موضوع به طور کامل برطرف میشود.
چکلیست نهایی پایدارسازی زیرساخت برنامههای .NET Core در ویندوز سرور
راهاندازی معماری چندسکویی .NET Core روی وبسرورهای سنتی مایکروسافت، نیازمند تغییر نگرش در نحوه مدیریت پردازشها است. برخلاف گذشته که وبسرور به صورت مستقیم بار کامپایل و اجرای برنامه را به دوش میکشید، در مدل جدید با تبدیل IIS به یک ریورس پروکسی، وظیفه آن صرفا به مدیریت درخواستها و تامین امنیت لایه وب محدود میشود.
برای تضمین پایداری سایت در محیط تولید، رعایت سه اصل کلیدی اهمیت بالایی دارد. اول، همگام بودن دقیق نسخه Hosting Bundle سرور با نسخه SDK سیستم توسعهدهنده؛ دوم، تنظیم درست دسترسیهای کاربر پردازشی مربوطه روی پوشه اصلی سایت؛ و سوم، حذف کامل موتور پردازشی داتنت قدیمی از روی کامپوننت وبسایت با تغییر تنظیمات به حالت بدون کد مدیریتشده. با اعمال این موارد، زیرساخت سرور شما آمادگی میزبانی بدون نقص پلتفرم مدرن مایکروسافت را خواهد داشت.
سوالات متداول
خیر. این دو پلتفرم کاملا از یکدیگر مستقل هستند و معماری مجزایی دارند. شما میتوانید نسخههای مختلف .NET Framework و .NET Core را به صورت همزمان بدون ایجاد هیچگونه تداخل یا مشکلی روی یک ویندوز سرور مانیتور و اجرا کنید.
این مشکل معمولا به این دلیل رخ میدهد که پکیج میزبانی را پیش از فعالسازی نقش وبسرور (IIS) نصب کردهاید و ماژول AspNetCoreModule روی وبسرور ثبت نشده است. برای حل آن، یک بار دیگر فایل نصبی Hosting Bundle را اجرا کرده و گزینه Repair را انتخاب کنید یا دستورات ریاستارت وبسرور را در خط فرمان وارد نمایید.
در حالت In-Process، برنامه شما درون همان پروسه کاری وبسرور IIS اجرا میشود که این کار سرعت و عملکرد بالاتری را به همراه دارد و حالت پیشفرض است. در حالت Out-Of-Process، برنامه در یک پروسه کاملا مجزا از IIS اجرا شده و وبسرور صرفا ترافیک را به آن Reverse Proxy میکند.
چون برنامههای .NET Core برخلاف نسخههای قدیمی داتنت، کامپایلر و موتور پردازشی اختصاصی خود را دارند و برای اجرا نیازی به ابزارهای داخلی و قدیمی ویندوز ندارند. این تنظیم باعث میشود IIS بار پردازش کدها را به خود برنامه بسپارد و فقط نقش هدایت ترافیک را داشته باشد.































شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.