به روز کردن یک سایت وب (از نظر نرم افزاری) کار نسبتا ساده‌ای هستش. کپی کردن فایل‌های تغییر یافته به روی سرور و اجرای چند تا اسکریپت SQL برای اعمال تغییرات به دیتابیس معمولا حداکثر کاری است که باید انجام داده بشه. اما از اونجایی که انسان (مخصوصا اگر از نوع برنامه نویس باشه) جایزالخطاست، در حین همین پروسه ساده ممکنه کلی مشکل پیش بیاد. مثلا ممکنه بعد از این که فایل‌ها رو کپی کردید رو سرور، یادتون بیافته که یک مورد مهم رو فراموش کردید، یا وسط آپلود یکهو لنگر یک کشتی بیافته رو فیبر نوری و اینترنت قطع بشه! برای همین بهتره که هنگام به روز رسانی، سایت موقتا بسته (Down) بشه و وقتی همه کارها با موفقیت انجام شد، سایت برای عموم باز بشه.


در ASP.NET برای این کار یک روشی نه چندان جالبی وجود داره که توی این مطلب معرفی شده و به مشکلاتش هم اشاره شده. برای iDevCenter من از روش زیر بر اساس URL Rewriting استفاده می‌کنم. از اونجایی که برای پیاده سازی URL Rewriting در سایت من از نرم‌افزار ISAPI_Rewrite استفاده کرده‌ام، این روش رو بر اساس فایل htaccess. توضیح می‌دهم ولی اصل مطلب به نرم‌افزار خاصی وابستگی نداره و به راحتی می‌شه برای محیط‌های دیگه هم ازش استفاده کرد.


در این روش کافیه این دو خط رو به اول فایل htaccess. اضافه کنیم. این کار باعث می‌شه تا تمام درخواست‌ها موقتا به آدرس /updating/ فرستاده بشن. توی این مسیر هم یک فایل ساده HTML وجود داره که به کاربرها خبر می‌ده که سایت در حال به روز رسانی شدن هستش.


RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]

اما همیشه بهتره قبل از این که سایت به روی عموم باز بشه، خودمون یکبار تمام تغییرات اعمال شده رو تست بکنیم و بعد از اطمینان از درست بودن همه موارد، سایت رو باز کنیم. برای این کار نیاز داریم که به یک شکلی خودمون رو از بقیه کاربران متمایز بکنیم. یکی از ساده‌ترین راه‌ها برای انجام این کار، درج یک عبارت مشخص در User Agent هست. در فایرفاکس کافیه در بخش about:config یک Key با نام general.useragent.extra.XYZ و با مقدار مورد نظر، مانند ABC، ایجاد بشه. اما برای IE باید دست به دامن Registry شد. حالا کافیه برای قانون دومی که تعریف کرده‌ایم یک شرط اضافه کنیم:


RewriteRule ^updating.*$ $0 [NC,U,QSA,L]
RewriteCond %{HTTP:User-Agent} !ABC [NC]
RewriteRule .* /updating/ [NC,U,QSA,R=307,L]

این شرط باعث می‌شه کاربرانی که عبارت ABC در User Agentشون وجود داره (یعنی مدیران سایت) از Redirect شدن معاف بشن و بتونن به طور عادی با سایت کار کنند.


Vote on iDevCenter

نظرات: Feed


87/12/6
01:01
شما احتمالا iDevcenter رو باASP.Net MVC کار نکردید؟ { مسعود }
87/12/6
01:27
@مسعود: نه. چطور؟ { سهیل }
87/12/8
19:25
آخه وقتی نسخه جدید اومد ، و نوع URL ها رو دیدم فکر کردم MVC کار شده.

تغییرات سریع ، سرعت بالا و ... حدس من رو بیشتر تائید می کرد ولی مثل اینکه اشتباه کردم...


به هر حال واقعا عالیه { مسعود }
87/12/14
21:01
من یه مشکل خیلی گیج کننده دارم توی c# و sql server
وقتی یه فرمی با زبان c# درست میکنیم و یه data base با sql کد اضافه کردن اطلاعاتی که کاربر توی فرم وارد میکنه به data base چی میشه ؟ همون insert into هستش یا کد دیگه اصلا نمیتونم بفهمم ایمیلم : naini_4@yahoo.com { سهیلا }
نام:
سایت وب:
پست الکترونیک: (نشان داده نمی‌شود)
نظر:
انسان یا روبات؟ عدد 33 را وارد کنید.