پنل کاربر · میزبانی وب

میزبانی ASP.NET (ویندوز): سایت، انتشار و SQL Server

خرید طرح ویندوزی، اتصال دامنه، ساخت سایت ASP.NET Core یا MVC، انتشار با Visual Studio، FTP، پایگاه داده‌ی SQL Server و خطایابی.

آخرین به‌روزرسانی:

میزبانی ASP.NET روی ویندوز سرور ۲۰۲۵ و IIS اجرا می‌شود و برای برنامه‌هایی است که با دات‌نت نوشته شده‌اند: ASP.NET Core (نسخه‌های ۸، ۹ و ۱۰؛ MVC، Razor Pages، Blazor Server و Web API) و ASP.NET Framework 4.8 (MVC و WebForms). پایگاه داده‌ی آن SQL Server است و کد را می‌توانید مستقیم از Visual Studio منتشر کنید. این آموزش همه‌ی گام‌ها را، از خرید تا انتشار برنامه و خطایابی، تصویری نشان می‌دهد.

برای سایت‌های PHP، پایتون و Node.js آموزش ساخت سایت در میزبانی اشتراکی را ببینید.

گام ۱: خرید طرح

از منوی کناری میزبانی وب را باز کنید. طرح‌های ویندوزی در بخش میزبانی ASP.NET (ویندوز) آمده‌اند. هر طرح فضای دیسک، پردازنده، حافظه و شمار سایت و پایگاه داده‌ی خودش را دارد.

طرح‌های میزبانی ASP.NET
طرح‌های میزبانی ASP.NET
طرح‌ها و بهاهای این تصویر نمونه‌اند؛ طرح‌های واقعی را در پنل خودتان می‌بینید.

دکمه‌ی خرید را بزنید و پرداخت را تأیید کنید. بهای یک ماه از کیف پول کسر می‌شود و حساب چند ثانیه بعد آماده است. تمدید خودکار روشن است و می‌توانید در صفحه‌ی حساب خاموشش کنید.

تأیید خرید طرح
تأیید خرید طرح

گام ۲: صفحه‌ی حساب، FTP و Web Deploy

پس از آماده شدن، روی حساب (مثلاً Vira-host12) بزنید. بالای صفحه مصرف دیسک و حافظه، سررسید و نشانی سرور برای رکورد A را می‌بینید. زیر آن کارت دسترسی FTP است.

صفحه‌ی حساب و دسترسی FTP و Web Deploy
صفحه‌ی حساب و دسترسی FTP و Web Deploy
  • host، port و user: نشانی سرور، درگاه ۲۱ و نام کاربری حساب (مثلاً h12).
  • dir: پوشه‌ی سایت‌ها؛ هر سایت یک زیرپوشه دارد.
  • انتشار از Visual Studio (Web Deploy): نشانی Web Deploy و Site name هر سایت (مثلاً h12-31) که در Visual Studio لازم دارید.

برای گرفتن گذرواژه، دکمه‌ی گذرواژه‌ی تازه را بزنید. همین کاربر و گذرواژه برای FTP و Web Deploy هر دو کار می‌کند.

گذرواژه‌ی FTP و Web Deploy
گذرواژه‌ی FTP و Web Deploy
گذرواژه تنها همین یک بار نشان داده می‌شود. اگر گم شد، دوباره «گذرواژه‌ی تازه» را بزنید؛ گذرواژه‌ی پیشین از کار می‌افتد.

گام ۳: اتصال دامنه

پنل پیش از ساخت سایت بررسی می‌کند که دامنه واقعاً به این سرور برسد. یکی از این دو راه را انجام دهید:

  • رکورد A: در DNS دامنه برای @ و www رکورد A با نشانی سرور (همان که در صفحه‌ی حساب آمده) بسازید و چند دقیقه صبر کنید.
  • شبکه‌ی توزیع ابر ویرا: اگر دامنه در شبکه‌ی توزیع محتوا فعال است، همان‌جا رکورد A با نشانی سرور و حالت ابری بسازید. در این حالت گواهی HTTPS را خود شبکه‌ی توزیع می‌دهد (حالت SSL «انعطاف‌پذیر» و «هدایت خودکار به HTTPS» در تنظیمات دامنه)؛ دکمه‌ی «گواهی رایگان» و «هدایت به HTTPS» سایت را نزنید.

گام ۴: ساخت سایت

در زبانه‌ی سایت‌ها، دکمه‌ی سایت تازه را بزنید.

فرم ساخت سایت ASP.NET
فرم ساخت سایت ASP.NET
نوع برنامهبراینکته
ASP.NET CoreMVC، Razor Pages، Web APIخروجی dotnet publish را بارگذاری کنید
Blazor / Razor PagesBlazor Server و صفحه‌های RazorWebSocket روشن است
ASP.NET MVC / WebFormsپروژه‌های .NET Framework 4.xپوشه‌ی خروجی Publish (همراه bin و web.config)
  • نام پوشه‌ی سایت: تنها حروف کوچک لاتین، عدد و خط تیره؛ مثلاً shop.
  • نسخه: باید با TargetFramework پروژه یکی باشد؛ برنامه‌ی net8.0 را با نسخه‌ی ۸٫۰ بسازید.
  • دامنه‌ها: هر خط یک دامنه؛ نخستین، نام اصلی سایت است.
  • ریشه‌ی وب درون پوشه (اختیاری): اگر خروجی را در زیرپوشه‌ای مثل publish گذاشته‌اید.
  • متغیرهای محیطی: رمزشده نگه داشته می‌شوند و به برنامه می‌رسند. در ASP.NET Core هر کلید appsettings.json را می‌توان با متغیر بازنویسی کرد؛ مثلاً ConnectionStrings__Default برای رشته‌ی اتصال و ASPNETCORE_ENVIRONMENT برای محیط اجرا. این‌گونه گذرواژه‌ی پایگاه داده در فایل‌های پروژه نمی‌ماند.

ذخیره را بزنید. سایت در IIS ساخته می‌شود و استخر برنامه‌ی (Application Pool) جدای خودش را با سقف پردازنده و حافظه‌ی طرح می‌گیرد.

گام ۵: انتشار برنامه

سه راه دارید؛ هر کدام که راحت‌ترید.

راه اول: Visual Studio با Web Deploy

  1. روی پروژه راست‌کلیک کنید و Publish را بزنید.
  2. Web Server (IIS) و سپس Web Deploy را برگزینید.
  3. فیلدها را از کارت دسترسی پر کنید:
  • Server: نشانی Web Deploy، مانند https://87.107.94.32:8172/msdeploy.axd
  • Site name: نام سایت در کارت دسترسی، مانند h12-31
  • User name و Password: کاربر حساب و گذرواژه‌ای که در گام ۲ گرفتید
  1. Validate Connection را بزنید و پرسش گواهی سرور را بپذیرید (Accept).
  2. Finish و سپس Publish را بزنید.
در تنظیمات Publish گزینه‌ی Take app offline را روشن کنید تا هنگام انتشار، برنامه‌ی در حال اجرا فایل‌ها را قفل نکند.

راه دوم: بارگذاری zip در مدیر فایل

  1. در پوشه‌ی پروژه فرمان dotnet publish -c Release -o publish را اجرا کنید (یا در Visual Studio، Publish به پوشه).
  2. محتوای پوشه‌ی خروجی را zip کنید.
  3. در زبانه‌ی فایل‌ها، پوشه‌ی سایت را باز کنید، zip را با بارگذاری بفرستید و روی آن بازکردن را بزنید.
مدیر فایل و پوشه‌ی سایت ASP.NET
مدیر فایل و پوشه‌ی سایت ASP.NET

راه سوم: FileZilla یا WinSCP

  • Host: نشانی سرور، Port: ۲۱
  • Encryption: «Require explicit FTP over TLS» (FTP بی رمزگذاری پذیرفته نمی‌شود)
  • User و Password: همان کاربر و گذرواژه‌ی حساب

نخستین بار، گواهی سرور را تأیید کنید. پس از ورود، پوشه‌ی sites و زیرپوشه‌ی هر سایت را می‌بینید.

پیش از جایگزینی فایل‌های برنامه‌ی ASP.NET Core یک فایل خالی به نام app_offline.htm در پوشه‌ی سایت بگذارید تا برنامه بایستد و DLLها آزاد شوند؛ پس از بارگذاری آن را پاک کنید. یا روی کارت سایت خاموش و پس از بارگذاری روشن را بزنید.

کارت سایت

کارت سایت‌های ASP.NET
کارت سایت‌های ASP.NET

روی هر کارت، نوع و نسخه، وضعیت اجرا، وضعیت گواهی و دامنه‌ها دیده می‌شود:

  • خاموش / روشن: سایت را از دسترس خارج یا دوباره فعال می‌کند.
  • راه‌اندازی دوباره: استخر برنامه را بازیافت می‌کند؛ پس از تغییر تنظیمات یا گیر کردن برنامه.
  • گواهی رایگان: گواهی Let's Encrypt صادر می‌کند (تنها وقتی دامنه با رکورد A مستقیم به سرور اشاره کند). پس از صدور، در ویرایش سایت گزینه‌ی هدایت همه‌ی بازدیدها به HTTPS را روشن کنید. گواهی خودکار تمدید می‌شود.
  • گزارش: رویدادهای خطا، خروجی برنامه و گزارش دسترسی (پایین‌تر).
  • ویرایش: دامنه‌ها، ریشه‌ی وب و متغیرهای محیطی.

گام ۶: پایگاه داده‌ی SQL Server

در زبانه‌ی پایگاه داده، پایگاه داده‌ی تازه را بزنید، یک نام کوتاه بدهید (مثلاً blog) و ساخت را بزنید. نام کامل با پیشوند حساب ساخته می‌شود (مثلاً h12_blog) و کاربری هم‌نام آن تنها به همین پایگاه داده دسترسی دارد.

مشخصات پایگاه داده و رشته‌ی اتصال
مشخصات پایگاه داده و رشته‌ی اتصال

رشته‌ی اتصال آماده را بردارید و در appsettings.json یا بهتر، در متغیر محیطی ConnectionStrings__Default سایت بگذارید:

Server=localhost;Database=h12_blog;User Id=h12_blog;Password=...;TrustServerCertificate=True
  • برنامه‌ی روی همین سرور با localhost وصل می‌شود.
  • از رایانه‌ی خودتان با SQL Server Management Studio: Server name همان نشانی سرور، Authentication «SQL Server Authentication» و کاربر و گذرواژه‌ی پایگاه داده. در پنجره‌ی اتصال، گزینه‌ی Trust server certificate را روشن کنید.
  • مهاجرت‌های Entity Framework را می‌توانید با همین رشته‌ی اتصال از رایانه‌ی خودتان اجرا کنید (dotnet ef database update --connection "...").
گذرواژه‌ی پایگاه داده هم تنها یک بار نشان داده می‌شود؛ با دکمه‌ی گذرواژه‌ی تازه در فهرست پایگاه‌ها عوض می‌شود.

خطایابی و گزارش‌ها

دکمه‌ی گزارش روی کارت سایت سه نما دارد:

گزارش سایت ASP.NET
گزارش سایت ASP.NET
  • رویدادهای خطا: خطاهایی که IIS و دات‌نت برای همین سایت ثبت کرده‌اند (مثل خطای راه‌اندازی برنامه یا استثنای کنترل‌نشده).
  • خروجی stdout برنامه: برای ASP.NET Core، اگر در web.config گزینه‌ی stdoutLogEnabled="true" و stdoutLogFile=".\logs\stdout" را بگذارید، خروجی کنسول برنامه اینجا دیده می‌شود. پس از رفع مشکل خاموشش کنید.
  • دسترسی (IIS): درخواست‌های رسیده به سایت؛ با حدود یک دقیقه تأخیر به‌روز می‌شود.
خطامعنیچه کنید
HTTP Error 500.30برنامه‌ی ASP.NET Core بالا نیامدرویدادهای خطا و خروجی stdout را ببینید؛ معمولاً رشته‌ی اتصال یا تنظیمات
HTTP Error 500.31نسخه‌ی دات‌نت برنامه با سایت نمی‌خواندسایتی با نسخه‌ی همان TargetFramework بسازید
HTTP Error 500.19web.config نامعتبر استفایل را بررسی کنید؛ خروجی publish خودش web.config درست می‌سازد
403 در صفحه‌ی اصلیسند پیش‌فرضی در پوشه نیستفایل‌ها را در پوشه‌ی درست (یا ریشه‌ی وب) بگذارید

نکته‌ها

  • ساخت روی سرور انجام نمی‌شود: برنامه را روی رایانه‌ی خودتان Publish کنید و خروجی را بفرستید.
  • منابع: هر سایت سقف پردازنده و حافظه‌ی طرح را دارد؛ اگر حافظه از سقف بگذرد، استخر برنامه خودکار بازیافت می‌شود.
  • ایمیل: ارسال مستقیم ایمیل از درگاه ۲۵ بسته است؛ برای ارسال ایمیل از برنامه، از سرویس ایمیل خود با درگاه ۵۸۷ و احراز هویت استفاده کنید.
  • جداسازی: هر حساب پوشه، کاربر ویندوز و استخرهای برنامه‌ی جدا دارد و برنامه‌ی هیچ حسابی به فایل‌ها یا پایگاه داده‌ی حساب دیگر دسترسی ندارد.
میزبانی ASP.NET (ویندوز): سایت، انتشار و SQL Server — آموزش ابر ویرا | ابر ویرا