با یک قسمت دیگر از کدنویسی سمت سرور در خدمتتان هستم. در این قسمت می خواهیم یک Publish عملی انجام دهیم تا شما بتوانید این را هم ببینید. به قسمت توسعه، مدیریت کدها، کدهای تحت سیستم عامل، کدهای تحت دات نت، مدیریت Assembly ها می روم، همانطور که یادتان هست گفتم برای این که ما بتوانیم Publish انجام بدهیم حتما باید یک DLL از نوع bin ، محل ذخیره سازی bin که آن هم لایه ی UI تان باید باشد که بتوانید آن را Publish کنید و سایت خودتان را ببینید. من برای Test یک service را Publish می کنم تا بتوانیم خروجی آن را ببینیم و آن روند Publish کردن را هم با همدیگر یکبار test کنیم.

در dll با نام Dynamic.UI ما یک Class Controller داریم که ما چند کار را باید انجام بدهم. اولا متد Test را انتخاب کنیم و آدرس سرویس را در آنجا کپی می کنم که برای تست داشته باشیم، یک آدرس test، Develotestget این را در یک Notpad کپی می کنم و نگه می دارم، بعد می روم در قسمت testline یعنی خطوط آن متد test این دو خط هم که یادتان هست برای آموزش نمونه گیری از WCF یک اینترفیس CreateWCF را صدا کردیم و آن متد Local host WCF متد Dowork را صدا کردیم چون اینجا در اینترنت و سرور اصلی هستیم WCF local host با ما نیست من برای این که خطایی پیش نیاید این دو خط را Comment می کنم و به X به صورت دستی مقدار می دهم X=55.

 اینجا هم حالا خطوطی است برای Debug ، ما در حالت Debug نمی خواهیم انتشار بدهیم در حالت release می خواهم انتشار دهم. در حالت Release هم می بینید که خروجی آن X.ToString است یعنی 55 را باید خروجی به ما نشان دهد. این را ذخیره می کنم. همه چیز آماده است کافی است DLL را با وابستگی هایش Compile کنم و بعد Publish را انجام دهم. کامپایل با ساخت وابستگی ها رامی زنم این پیغام خطایی که دیدید اینجا پیش آمد شما در کنسول مرورگرتان هم می توانید دوباره آن را ببینید. به این خاطر است که ما قبلا DLL business را compile کرده اید. زمانی پیش می آید که شما قبلا DLL تان را compile کرده اید. مشکل مهمی نیست چون معمولا 30 ثانیه یا یک دقیقه صبر کنید دوباره از کامپایل کنید مشکلتان برطرف می شود اما اگر احتمال یک درصد این مشکل حل نشد کافی است به Webconfig بروید یک Enter بزنید و آن را Save کنید تا یک بار اپلیکیشن ریستارت شود و پروسس ها آزاد شود. ما اینجا 30 ثانیه صبر کردیم من دوباره Compile را بزنم ، می بینید که مشکل برطرف شده و dll ما کامپایل شده.

 به مدیریت خروجی ها که می آیم می بینم که ورژن 78 برای dll با نام UI ما آماده است.این عدد ورژن هم که می بینید ، زیاد است ، چون از طریق Setup نصب شده ورژن هایی که از قبل بوده روی آن مانده است. الان این را نزده ایم که ورژن این 78 شده است. سورسی است که در زمان توسعه همینطور ورژن آن بالا رفته است.

الان این را انتخاب می کنم ورژن Release اش را R78 را انتخاب می کنم و روی دکمه ی انتشار که کلیک می کنم ، یک پیغام هم برای تمام کاربران سایت می آید که سایت Update می شود و کارهایشان را ببندند که چند لحظه بعد سایت Restart می شود. این پیغام برای زمان هایی خوب است که سایت تان در حالت اجرا است و User روی آن کار می کند و می خواهید سایت تان را هم Update هم بکنید. اما این توصیه شده است که اولا کد نویسی را بگذارید برای زمان Develop یا اگر هم زمانی که سایت اجرایی است می خواهید این کار را انجام دهید در یک ساعت هایی از شبانه روز انتشار ورژن جدید باشه که User در سایتتان نباشد. ولی حالا این یک آلارم هم به User ها می دهد. من الان روی دکمه ی انتشار کلیک می کنم این همهمان آلارم است که می گوید. کاربر محترم تا چند ثانیه دیگر این وبسایت به منظور افزودن امکانات جدید ریستارت خواهد شد. لطفا کارهای خود را متوقف کنید و بعد از Update ادامه دهید. 

الان DLL ما Publish شد اما همانطور که در ویدیوهای قبلی گفتم چون startup مان روی حالت Static هست فعلا آن DLL ایی که ما Publish کردیم مدنظر قرار نمی گیرد تا زمانی که ما برویم روی تنظیمات وبکانفیگ در قسمت تنظیمات و این کلید Owin:AppStartup را که الان روی Static startup هست باید تغییر بدیم به DynamicStartup ، من این را کپی می کنم در همان Notepad و به جای Static می گذارم Dynamic و این را ذخیره می کنم. حالا صفحه ی اصلی را باز می کنم حالا آن URL که من کپی کردم در Notepad می روم داخل آن اگر یادتان باشد باید به ما 55 را نشان بدهد ، همینطور که می بینید 55 را برای ما آورد به همین سادگی شما یک سرویس از نوع http را به سایت تان اضافه کردید.