برای پابلیش برنامه های دات نت کور روی iis کامپیوتر خودتون وقتی روی پروژه های از جنس وب راست کلیک کنید و publish رو بزنید اگر قبلا هیچ نوع پابلیشی نساخته بودین یعنی Profile ای ساخته نشده که باید یک profile ایجاد کنید. 6 نوع Publish Profile در Visual Studio 2022 وجود دارد :
Azure , Docker , Folder , FTP , IIS
اگر اولین بار هست که پابلیش پروفایل ایجاد میکنید IIS رو انتخاب کنید سپس Web Deploy را انتخاب کنید و Next رو بزنید. اگر قصد پابلیش روی iis کامپیوتر خودتون رو دارید Server را پر کنید : localhost
برای SiteName هم که اسم پروژه تون رو پر کنید ، و Destination URL را با آدرس کامل سایت iis تون پر کنید مثلا : http://localhost:6006
البته میشه نوع پروفایل رو Folder انتخاب کرد و مسیر فولدری رو داد که به iis هنگام ایجاد سایت جدید دادیم.
اگر پروفایل از نوع IIS باشه بعد از پابلیش توسط vs ، بروزر باز میشه و سایتمون رو باز میکنه.
پروفایلهایی که میسازین در قالب یک فایل با پسوند pubxml در پروژه وب و در مسیر Properties>PublishProfiles ذخیره میشه.پروفایلهایی که میسازین در قالب یک فایل با پسوند pubxml در پروژه وب و در مسیر Properties>PublishProfiles ذخیره میشه.
کار تمومه فقط اگر بعد از زدن دکمه Publish در بالا راست ، این ارور رو گرفتین باید فایل pubxml رو ویرایش کنید و خط
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
رو در خط بعد از <PropertyGroup> قرار بدین و این فایل رو ذخیره و دوباره پابلیش کنید.
متن ارور :
Web Deploy cannot modify the file dll on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for ...
علت خطا اینه که سرویس iis استارت هست و فایلهای dll قابل replace شدن نیستن و تنظیمی که انجام میدیم باعث میشه iis این سایت استاپ ، فایلها کوپی و replace بشه و دوباره iis استارت بشه و پابلیش با موفقیت انجام میشه.
البته یه خطای دیگه هم ممکنه در حالت Folder بگیرین اینه :
Visual Studio Publish Failed: “Unable to delete file … Access to the path … is denied.”
برای رفع این خطا هم روی فولدری که میخواین توش پابلش کنید راست کلیک کنید و Properties بگیرین و تیک Read-only را کامل خاموش و OK را بزنید.
تمام پابلیش پروفایل ها از بالا چپ قابل سوییچ کردن هست که برای این کار باید روی اسم پروفایل کلیک کنید تا لیست پروفایلهایی که ساختین باز بشه و یکیو انتخاب کنید.
برای ویرایش هر پروفایل هم بعد از انتخابش لینک آبی رنگ show all settings رو بزنید یا روی More actions کلیک کنید که در More actions گزینه های Rename و Delete هم هست که میتونید پابلش پروفایلتون رو حذف کنید یا تغییر نام بدین.