معرفی app_offline.htm ، آفلاین کردن یک Web Application در ASP.net
حتما در وبگردی های روزانه خود به سايت هائی برخورد کرده اید که به هنگام ارسال درخواستی مبنی بر مشاهده صفحه ای از آن ، پیغام در حال بروز رسانی و ... برای شما نمایش داده می شود ، برنامه نویسان برای رعایت مسائل امنیتی و ... در هنگام بروزرسانی یک وب سايت سیستمی پیاده سازی می کنند تا تمامی درخواست ها به يک صفحه خاص هدایت شود و در آن صفحه به کاربر اطلاع داده شود که سايت در حال بروزآوری و ... می باشد.
راه های زیادی برای پیاده سازی چنین تکنیکی موجود می باشد ، اما ASP.net برای پیاده سازی این سناریو از یک روش جالب استفاده می کند ، کافیست در Root وب سايت خود فایلی با نام app_offline.htm قرار دهید ، از این پس و تا زمانیکه این فایل در Root موجود باشد تمامی درخواست های ارسال شده به سايت به این صفحه هدایت میشود.بعد از اینکه کار شما بعنوان برنامه نویس با وب سايت تمام شد می توانید براحتی این فایل را حذف کنید تا وب سايت برای عموم بازدیدکنندگان قابل دسترس باشد.
نکته جالب در مورد این فایل این است که با ایجاد چنین فایلی ASP.net تنها اقدام به یک Redirect ساده نمی کند ، ASP.net همچنین سرویس این سايت را Shut Down می کتد و تمام پردازش های موجود بر روی فایل های این وبسايت متوقف می شود ، با Shut Down شدن یک سايـت براحتی می توانید به فایل هائی که قبلا امکان دسترسی به آنها ، به دلیل استفاده پردازش دیگری ، میسر نبود حالا دسترسی داشته باشید ، آنها را ویرایش نمائید ، حذف نمائید ، جا به جا نمائید و ...
نکته جالب دیگری در رابطه با این فایل این است که این فایل حتما باید دارای حجمی بیشتر از 512 بايت باشد در غیر اینصورت IE خطای 404 را نمایش می دهد ! ولی در سایر مرورگرها محدودیت حداقل حجم برای فایل app_offline.htm موجود نمی باشد.
نکته آخر که یک نکته منفی در رابطه با این تکنیک می باشد این است که در این سیستم کد 404 از سمت سرور بازگردانده می شود ، به این معنا که فایل درخواست شده یافت نشده است ! در حالیکه سرور در حال حاضر سرویس قابل دسترس نمی باشد؛ در واقع بهتر بود به جای کد 404 که مربوط به عدم وجود صفحه است کد 503 (Service Unavailable)بازگردانده می شد.
بازگرداندن کد 404 از سوی سرور چه مشکلی ایجاد می کند ؟
تصور کنید موتورهای جستجو در حالیکه فایل app_offline.htm بر روی سرور موجود است به سايت شما مراجعه می کنند و با مشاهده خطاهائی 404 صفحات ایندکس شده از سايت شما بر روی پایگاه داده های خود را پاک خواهند کرد!
توصیه می شود از فایل app_offline.htm برای مدت طولانی استفاده ننمائید.
جهت نگارش مطلب فوق از مطالب زیر استفاده شده است :
Taking an ASP.NET Site Offline with a Message (بخش دوم مطلب را مشاهده نمائید.)