امروز در سلسله مقالات آموزش ASP دانشجویار به بررسی آموزش آپلود سایت net.asp روی هاست پرداخته ایم.

مقدمه آموزش آپلود سایت asp.net روی هاست

در ابتدای آموزش آپلود سایت asp.net روی هاست باید با دو استقرار برنامه کاربردی آشنا شویم. این دو استقرار (Deployment) در asp.net عبارتند از:

  • استقرار محلی: در این مورد، کل برنامه کاربردی روی یک دایرکتوری مجازی قرار می‌گیرد که می‌توان به تمام محتویات و اسمبلی‌ها در این دایرکتوری مجازی دسترسی داشت. بنابراین، برنامه کاربردی هم به این محتوا دسترسی دارد.
  • استقرار سراسری: در این حالت استقرار، اسمبلی‌ها در دسترس هر برنامه‌ای هستند که در سرور اجرا می‌شود.

روش‌های استقرار

گفتنی است که برای استقرار، تکنیک‌های متفاوتی وجود دارند. استقرار XCOPY، کپی کردن یک وب‌سایت و ایجاد یک Set up پروژه از جمله این روش‌ها هستند. در ادامه به توضیح دو روش اول می‌پردازیم و سپس به طور کامل، آموزش آپلود سایت asp.net روی هاست را مرحله به مرحله توضیح می‌دهیم.

استقرار XCOPY

برای ایجاد کپی‌های بازگشتی از تمام فایل‌ها به پوشه هدف در ماشین هدف که همان روش استقرار XCOPY است، می‌توان از دو ترفند رایج استفاده کرد:

  • انتقال FTP
  • استفاده از ابزارهای مدیریت سرور که تکثیر در یک سایت Remote را امکان‌پذیر می‌کنند.
  • استفاده از برنامه کاربردی MSI installer

با به‌کارگیری روش استقرار XCOPY، به راحتی می‌توان فایل برنامه کاربردی را در سرور Production کپی کرد و یک دایرکتوری مجازی در آن قرار داد. دایرکتوری مجازی با استفاده از Information Manager Microsoft Management Console (MMC snap-in) Internet تنظیم می‌شود.

کپی کردن یک وب‌سایت

می‌توان با رفتن به مسیر Options، سپس Website و در آخر Copy، وب‌سایت را تبدیل به یک وب‌سایت دلخواه یا از راه دور (Remote) دیگر کرد. پس از اجرای این فرامین، می‌توان یکی از سه حالت کپی را انتخاب کرد. این سه حالت عبارتند از:

  • رونوشت (Overwrite)
  • فایل‌های منبع به مقصد (Source to Target Files)
  • هم‌گام‌سازی منبع و پروژه‌های هدف (Sync UP Source And Target Projects)

گفتنی است هردوی این روش‌های استقرار، با مشکلاتی مانند انتقال کد منبع، عدم امکان بررسی خطا و سرعت بسیار کم بارگذاری صفحه همراه خواهند بود.

خرید دامنه

برای آموزش آپلود سایت asp.net روی هاست، ابتدا از خرید دامنه شروع می‌کنیم. برای اختصاص دامنه ir می‌توانید از وب‌سایت‌هایی که تمام مالکیت دامنه را به نام شما ثبت می‌کنند خرید کنید. پس از خرید هاست، باید به انتشار وب بپردازید.

انتشار وب‌سایت

پس از خرید هاست و در یافت اطلاعات آن در ایمیل، اقدام به انتشار وب می‌کنیم. برای این کار، ابتدا وارد Website Panel شده و یک دیتابیس ایجاد می‌کنیم. حال پس از وارد کردن یک نام کاربری جدید، آن را به دیتابیس ساخته شده، متصل می‌کنیم.

با انتخاب گزینه Create Data می‌توان یک دیتابیس ایجاد کرد. اگر می‌خواهید یک کاربر را برای اتصال به دیتابیس قبلی ایجاد کنید، گزینه Create User را انتخاب کنید. پس از انتخاب Create Database، یک نام برای دیتابیس خود انتخاب کرده و وارد می‌کنید و در نهایت تمامی اطلاعات را Save می‌کنید.

نکته قابل توجه در این مرحله از آپلود سایت، این است که در صورت ایجاد کاربردی در مراحل قبل، حال می‌توانید در قسمت Users، یک کاربر برای اتصال به دیتابیس انتخاب کنید. با انتخاب Create User به مرحله بعدی می‌روید که در این قسمت می‌توانید یک نام کاربری مشخص کرده و در عین حال می‌توانید دیتابیس متصل به این نام کاربری را تعیین کنید.

انتقال دیتابیس به هاست

در این مرحله از آموزش آپلود سایت asp.net روی هاست، ابتدا یک Backup از دیتابیس تهیه کرده و سپس دیتابیس ایجاد شده در هاست را انتخاب می‌کنیم. طبق گزینه‌های پیش رو، Maintenance tools را انتخاب کرده و سپس روی گزینه Restore کلیک می‌کنیم.

حال با کلیک روی Choose File می‌توان فایل‌های با فرمت خاص را برای انتقال دیتابیس از کامپیوتر شخصی به هاست انتخاب کرد. با ایجاد یک کانکشن استرینگ در Webconfing، می‌توان تنظیمات مربوط به اتصال دیتابیس را در این بخش نهایی کرد.

در این قسمت باید نام کاربری، رمز عبور و نام دیتابیس ایجاد شده در هاست را وارد کرد. فراموش نکنید که حالت Debug را پس از اتمام برنامه‌نویسی، غیر فعال کنید. حال زمان استفاده واقعی از برنامه است و حالت Debug باید به False در حالت نهایی تغییر کند.

Publish وب‌سایت در ASP.Net

پس از ساخت برنامه و اتمام مراحل پیاده‌سازی، به مرحله Publish برنامه می‌رسیم تا کدهای برنامه‌نویسی حفظ و سرعت بارگذاری بهینه شود. ابتدا روی پروژه کلیک راست کرده و سپس گزینه Publish را انتخاب کنید. در پنجره باز شده، روی Next کلیک کنید. اگر روی گزینه Custom کلیک کنید، همانطور که از نام آن پیدا است، می‌توانید نام دلخواه‌تان را برای فایل پابلیش خود انتخاب کنید. در صورت کار کردن با Asp.Net باید این گزینه را انتخاب کرده و یک نام برای پابلیش وارد کنید.

در مرحله بعدی آموزش آپلود سایت asp.net روی هاست، نوبت به visual studio 2013 می‌رسد که گزینه‌های متنوعی در اختیارتان قرار می‌دهد. برای اجرای Publish روی کامپیوتر، در قسمت Publish Method روی گزینه File System کلیک کنید. حال در پنجره Target Location، مسیر publish را انتخاب کنید.

در این قسمت روی گزینه Next کلیک کرده و Configuration را روی Debug تنظیم کنید تا اگر اشتباهی در برنامه رخ داده است، برای ویرایش نشان داده شود. در صورتی که وب‌سایت خود را با Asp.Net طراحی کرده باشید، با سه گزینه روبرو می‌شوید که عبارتند از:

  • Delete all existing files prior to publish

تیک این گزینه به طور پیش‌فرض زده شده است و در صورتی که قبلاً وب‌سایت خود را پابلیش کرده باشید، فایل‌های قبلی را حذف می‌کند.

  •  Precompile during publishing

انتخاب این گزینه موجب تبدیل کلاس و کدهای برنامه به dll می‌شود.

  •  Exclude file from the App_Data folder

این گزینه یعنی گزینه آخر، موجب خروج فایل‌های موجود در پوشه App_Data از برنامه می‌شود.

حالا وقت آن رسیده است که با انتخاب گزینه Publish، برنامه پابلیش شود که در صورت نبود مشکل در برنامه، این مرحله به راحتی انجام می‌شود. اگر پس از Publish به مسیری که در قدم قبلی انتخاب کرده بودید بروید، خواهید دید که پوشه‌های Models، Controllers و کلاس‌های برنامه به چشم نمی‌خورند.

برای دسترسی به این فایل‌ها می‌توانید وارد فایل bin شوید و تمامی آن‌ها را به صورت یکپارچه در این قسمت پیدا کنید. در صورت بروز خطا، قبل از Publish کردن به تغییر dll ها در پوشه References بپردازید. برخی از dll هایی که ملزم به تغییر ویژگی هستند عبارتند از:

  • dll
  • CSharp.dll
  • ComponentModel.DataAnnotations.dll
  • Data.Entity.dll
  • Web.Abstractions.dll
  • Web.dll
  • Web.Entity.dll
  • Web.Extensions.dll
  • Web.Helpers.dll
  • Web.Mvc.dll
  • Web.Razor.dll
  • Web.Routing.dll

dll ها ممکن است نسبت به هر برنامه، متفاوت باشند. در هر صورت برای رفع خطا، روی dll مورد نظر کلیک راست کرده و گزینه Properties را انتخاب کنید. حالا مقدار Copy Local را به True برای تمامی dll ها تغییر دهید. با Publish مجدد برنامه، دیگر خبری از خطاها درباره نبود Namespace ها نیست.