• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

<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
 
     

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap