您的位置:首页 > 理论基础 > 计算机网络

使用HttpModules实现Asp.net离线应用程序

2009-09-06 08:52 344 查看
当我们在对某个ASP.NET应用程序做维护时,此时可能还有某些客户会访问程序,此时如果你在更新某些程序,可能会出现那报错的页面或黄页。较好的做法是提供一个离线的页面,上面有些提示信息。例如,正在维护中,让客户过会儿在访问之类的。当客户访问default.aspx页面时,如果不是管理员那就让他们重定向到Offline页面。我们可以使用HttpModules来实现这功能,在服务器上放一个名为offline.html的文件,当时这个文件存在时,那么可以说维护模式开始了,然后在web.config中配置管理员机器的IP。

<addkey="AdminIP"value="127.0.0.1"/>
HttpModules:
///<summary>
///ThisishowyoutakeanASP.NETapplicationofflinethe
///ArnoldMatuszwaywithAppOfflineModule
///</summary>
publicclassAppOfflineModule:IHttpModule
{
publicvoidDispose()
{

}

publicvoidInit(HttpApplicationcontext)
{
context.BeginRequest+=newEventHandler(context_BeginRequest);
}

voidcontext_BeginRequest(objectsender,EventArgse)
{
HttpApplicationapplication=(HttpApplication)sender;
HttpContextcontext=application.Context;
if(File.Exists(Path.Combine(context.Server.MapPath("~"),"offline.html")))
{
stringip=context.Request.UserHostAddress;
stringadminIP=ConfigurationManager.AppSettings["AdminIP"];

if(ip!=adminIP)
{
context.RewritePath("~/offline.html");
}
}
}
}

在web.config中注册这个Module:

<httpModules>
<addname="AppOfflineModule"type="AppOfflineModule"/>
</httpModules>
好了,此时有这个Offline.html时,非管理中访问将显示:Wearecurrentlydownformaintenance。
这个简单的示例,可以扩展到权限的实现,更加丰富化UI交互。希望这篇Post对您有帮助!
Author:PetterLiuhttp://wintersun.cnblogs.com

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐
章节导航