به روز کردن یک سایت وب (از نظر نرم افزاری) کار نسبتا سادهای هستش. کپی کردن فایلهای تغییر یافته به روی سرور و اجرای چند تا اسکریپت 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 شدن معاف بشن و بتونن به طور عادی با سایت کار کنند.
نظرات:
01:01
01:27
19:25
تغییرات سریع ، سرعت بالا و ... حدس من رو بیشتر تائید می کرد ولی مثل اینکه اشتباه کردم...
به هر حال واقعا عالیه { مسعود }
21:01
وقتی یه فرمی با زبان c# درست میکنیم و یه data base با sql کد اضافه کردن اطلاعاتی که کاربر توی فرم وارد میکنه به data base چی میشه ؟ همون insert into هستش یا کد دیگه اصلا نمیتونم بفهمم ایمیلم : naini_4@yahoo.com { سهیلا }