PDA

View Full Version : ایجاد حالت "Application Offline" در ASP.NET 2.0



Behrouz_Rad
شنبه 02 دی 1385, 21:05 عصر
توجه:
کلیه ی حقوق این مقاله متعلق به سایت www.barnamenevis.org می باشد.
استفاده از مطالب این مقاله منوط به ذکر نام منبع است.

یکی از امکانات جدیدی که در ASP.NET 2.0 وجود داره، امکان وجود قابلیت Application Offline هست.

یک سایت ممکنه نیاز داشته باشه که برای مدتی از دسترس کاربرانش خارج بشه!
به عنوان مثال، حتما در همین سایت با عبارت "در حال حاضر سایت به دلیل انجام عملیات بروز رسانی بر روی سرور در دسترس نمی باشد" مواجه شده اید.

به طور عمده دو دلیل رو میشه برای از دسترس خارج کردن یک سایت بر شمرد:
1) ایجاد تغییرات اساسی بر روی سایت (مثلا تغییر ساختار دیتابیس برنامه)
2) بررسی قسمت هایی از سایت که در زمان آنلاین بودن سایت امکان پذیر نیست.

پیش از این، تنهاه راه برای متوقف کردن سایت، درخواست از ادمین هاست برای متوقف کردن آن بود.
ASP.NET 2.0 این امکان رو میده تا به بهترین نحو این کار رو انجام بدید.
اصول کار ساده ست!
موتور پردازشگر ASP.NET در ابتدای هر درخواست، به دنبال فایلی با نام "app_offline.htm" در ریشه ی سایت خواهد گشت و در صورتی که این فایل را پیدا کرد، به طور خودکار، برنامه را متوقف کرده و محتویات این فایل را به جای محتویات صفحه ی درخواست شده به مرورگر کاربر ارسال خواهد کرد!
زمانی که تغییرات مورد نیاز انجام گرفت، کافیست این فایل را حذف کنید تا با دریافت اولین درخواست، برنامه مجددا آنلاین شود!

در فایل "app_offline.htm" معمولا توضیحاتی در مورد دلیل متوقف شدن سایت نوشته خواهد شد.

نکته ی بسیار مهمی که باید بدان توجه داشته باشد این است که:
IE این قابلیت رو داره تا خطاهایی از نوع HTTP رو با ذکر جزئیات خطا نمایش بده.
این قابلیت به طور پیش فرض فعال است: Tools > Internet Options > Advanced
اما مشکلی که در اینجا وجود داره اینه که در صورت پیدا شدن فایل "app_offline.htm"، سرور ضمن نمایش دادن محتویات این فایل، کد وضعیتی غیر از کد موفقیت پردازش درخواست (200) را برگشت خواهد داد!
در این حالت، اگر حجم داده های ارسالی به کلاینت کمتر از 512 بایت باشد، محتویات فایل "app_offline.hmt" نمایش داده نمی شود و به جای آن، خود خطای HTTP با ذکر توضیحاتی ظاهر می شود!
برای رفع این مشکل، در صورتی که حجم فایل "app_offline.htm" شما کمتر از 512 بایت شد، مقداری عبارت Comment شده در آن قرار دهید! به همین سادگی!

موفق باشید.