netcore

پلتفرم Net.

(DotNet Platform)

🎯 توضیحات و نکات تکمیلی

فهرست عناوین:

انتخاب نسخه‌ی Net.

به‌صورت پیش‌فرض، برنامه‌ی شما روی نسخه‌ی ۳.۱ این پلتفرم اجرا می‌شود. می‌توانید داخل فایل liara.jsonنسخه‌ی مدنظرتان را به شکل زیر تعیین کنید. سپس بعد از یک بار دیپلوی، برنامه‌ی شما روی نسخه‌ی تعیین شده اجرا خواهد شد.

{
  "netcore": {
    "version": "6.0"
  }
}

در حال حاضر، از نسخه‌های زیر پشتیبانی می‌کنیم:

  • 8.0
  • 7.0
  • 6.0 (LTS)
  • 5.0
  • 3.1 (LTS) (پیش‌فرض)
  • 3.0 (EOL)
  • 2.2 (EOL)
  • 2.1 (EOL)
EOL مخفف عبارت END OF LIFE و به‌معنای پایان عمر یک نسخه است بنابراین باوجود پشتیبانی از نسخه‌های EOL در لیارا توصیه می‌کنیم پروژه‌هایتان را به نسخه‌های جدیدتر ارتقا دهید.

تنظیمات مرتبط با ساختار برنامه

لیارا به صورت خودکار سعی می‌کند که تنظیمات مناسب برنامه‌ی شما را تشخیص دهد و برنامه‌ی شما را در بهترین حالت مستقر کند. اما با توجه به تنوع ساختار برنامه‌های Net. ممکن است که برخی از این تشخیصات خودکار با مشکل مواجه شوند و لیارا نتواند برنامه‌ی شما را به درستی مستقر کند.

در چنین حالاتی ممکن است با خطاهایی مانند خطای زیر روبه‌رو شوید:

It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download

این امکان برای شما فراهم شده که به جای اتکا به قابلیت تشخیص خودکار لیارا، پارامترهای مورد نیاز برای استقرار برنامه‌ی‌تان را خودتان تعریف کنید. این کار به کمک تعریف فایلliara.jsonدر ریشه‌ی برنامه‌تان امکان‌پذیر است.

{
  "platform": "netcore",
  "netcore": {
    "finalDllName": "MyProjectName",
    "csprojectFile": "path/to/folder/my.csproj"
  }
}

  • finalDllName: نام فایل .dllنهایی برنامه که بعد از بیلدکردن ساخته می‌شود. (بدون پسوند)
  • csprojectFile: مسیر فایل .csprojاصلی برنامه. (به صورت نسبی وارد شود)

تنظیم منطقه‌ی زمانی (TimeZone)

منطقه‌ی زمانی در برنامه‌های ASP.Net Core به‌طور پیش‌فرض بر روی Asia/Tehran تنظیم شده است اما شما می‌توانید منظقه‌ی زمانی برنامه‌ی خود را با استفاده از پارامتر timezone در فایل liara.json تغییر دهید:

{
  "platform": "netcore",
  "app": "dotnets-starter",
  "netcore": {
    "timezone": "America/Los_Angeles"
  }
}

رفع خطای 502 Bad Gateway

در صورتی که فرایند استقرار برنامه‌ی‌تان موفقیت‌آمیز بوده اما خطای 502 را در خروجی مشاهده می‌کنید، به‌احتمال زیاد مشکل از URL ای است که داخل سورس‌کدتان تنظیم و شخصی‌سازی کرده‌اید.

به‌صورت پیش‌فرض، برنامه‌های Net. روی آدرسhttp://0.0.0.0:80اجرا می‌شوند. اگر شما این آدرس را برای مثال بهhttp://localhost:5000تغییر داده باشید، خطای 502 را مشاهده خواهید کرد.

در این صفحه‌ی StackOverflow، می‌توانید راه‌حل‌های متنوعی که برای حل این مسئله گفته شده را مشاهده کنید. به‌طور خلاصه، باید در فایلProgram.cs، از متد.UseUrlsاستفاده کنید:

.UseUrls("http://0.0.0.0:5000");

همان‌طور که مشاهده می‌کنید، localhost را باید به 0.0.0.0 تغییر دهید. حالا برای استقرار این برنامه، باید از دستورliara deploy --port 5000استفاده کنید تا لیارا بداند که برنامه‌ی شما قرار است روی پورت 5000 اجرا شود.

رفع خطای CORS

در برنامه‌های Net. به‌روش‌های مختلفی می‌توانید CORS را فعال‌سازی کنید اما درصورتی که با خطای CORS مواجه شده‌اید بایستی Origins و یا Methods تنظیم شده را مجدد مورد بررسی قرار دهید:

builder.Services.AddCors(options =>
{
  options.AddPolicy(name: "MyPolicy",
    builder =>
    {
      builder.WithOrigins("https://example.com",
                          "https://subdomain.example.com")
              .WithMethods("PUT", "DELETE", "GET");
    });
});

برای کسب اطلاعات بیشتر می‌توانید مستندات رسمی این فریم‌ورک را مطالعه کنید.

;