HttpModulesを用いるAspを実現する.Netオフラインアプリケーション
4191 ワード
あるASPに対してNETアプリケーションがメンテナンスを行う場合、一部のお客様がプログラムにアクセスする場合があります.この場合、一部のプログラムを更新している場合は、間違ったページや黄色いページが表示される可能性があります.良い方法は、オフラインのページを提供することです.上にヒントがあります.たとえば、メンテナンス中で、お客様が後でアクセスできるようにするなどです.お客様がdefaultにアクセスするとaspxページの場合、管理者でない場合はOfflineページにリダイレクトさせます.HttpModulesを使用してこの機能を実現し、サーバにofflineという名前を置くことができます.htmlのファイルは、当時このファイルが存在していたとき、メンテナンスモードが開始され、web.configでは管理者マシンのIPを設定します.
WebでconfigにこのModuleを登録します.
<add key="AdminIP" value="127.0.0.1"/>
HttpModules:
/// <summary>
/// This is how you take an ASP.NET application offline the
/// Arnold Matusz way with AppOfflineModule
/// </summary>
public class AppOfflineModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
if (File.Exists(Path.Combine(context.Server.MapPath("~"), "offline.html")))
{
string ip = context.Request.UserHostAddress;
string adminIP = ConfigurationManager.AppSettings["AdminIP"];
if (ip != adminIP)
{
context.RewritePath("~/offline.html");
}
}
}
}
WebでconfigにこのModuleを登録します.
<httpModules>
<add name="AppOfflineModule" type="AppOfflineModule"/>
</httpModules>
, Offline.html , :We are currently down for maintenance。
, , UI 。 Post !
Author:Petter Liu http://wintersun.cnblogs.com