HTTP运行时的简单应用

简介:        所谓HTTP运行时,指的是从IIS接受到HTTP请求开始,一直到将响应结果反馈给用户为止的这段工作过程。

       所谓HTTP运行时,指的是从IIS接受到HTTP请求开始,一直到将响应结果反馈给用户为止的这段工作过程。

       假设一个网站正在维护建设中,访问任何一个页面都提示“对不起,网站正在维护,暂停访问!”。该如何去做呢?

      HTTP运行时的结构图就不画了,HttpModule是HTTP请求经过的第一道“容器”,发生在HttpHandle之前。也就是说,Page类还没有起作用,HttpModule就开始工作了。利用这个特点,常常将HttpModule作为HTTP请求的“过滤器”或“附加信息器”,在到达Page类之前,先对HTTP请求做一些“预处理”。

      HttpModule 的使用方法如下:

     (1)、定义一个从IHttpModule接口继承的类。

     (2)、在config文件中写好相关配置,以指示.NET来调用这个类。

     其中,IHttpModule接口中有2个方法,如下:

      void Dispose();//做清理工作的

      void Init(HttpApplication context);//使用HttpModule的关键,提供了HttpApplication对象的实例

 

接下来就是实现上面的提示信息:

(1)、在App_Code文件夹下建立一个BreakModule.cs的类

       namespace MySpace.Module

       {

              public class BreakModule:IHttpModule

              {

                     public void Dispose()

                     {

                     }

 

                     public void Init(HttpApplication application)

                     {

                           application.BeginRequest += new EventHandler(application_BeginRequest);

                     }

                     

                      public  void application_BeginRequest(object sender,EventArgs e)

                      {

                             HttpApplication application = (HttpApplication)sender;

                             application.CompleteRequest();

                             application.Context.Response.Write("对不起,网站正在维护中,暂停访问!");

                      }

              }

       }

(2)、在Web.config文件中配置如下节:

       ....

       <system.web>

              <httpModules>

                       <add name="BreakModule" type="MySpace.Module.BreakModule"/>

              </httpModules>

       </system.web>

       ...

(3)、经过如上配置以后,浏览器打开任何一个页面都会提示这样的信息提示:对不起,网站正在维护中,暂停访问!

 

还有一种方法就是在Global.asax中的Application_BeginRequest(object sender,EventArgs e)方法中写上如下代码即可:

void Application_BeginRequest(object sender,EventArgs e)

{

     HttpApplication aplication = ()sender;

    application.Context.Response.Write("对不起,网站正在维护中,暂停访问!");  

    application.Context.Response.End();

}

 

 

相关文章
|
3月前
|
缓存 Linux Shell
RHEL7部署http应用配置共享yum源
RHEL7部署http应用配置共享yum源
77 0
|
24天前
|
程序员
深入理解HTTP协议本质与应用
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。简单来说,如果你不懂HTTP协议,那就相当于是个只有“半桶水”的程序员。在这个课程中,带你一起花最少的时间,用最少的精力,掌握最多、最全面、最系统的HTTP相关知识
13 3
深入理解HTTP协议本质与应用
|
1月前
|
数据采集 缓存 监控
Socks5 与 HTTP 代理在网络安全中的应用
Socks5 与 HTTP 代理在网络安全中的应用
11 0
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
46 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
2月前
|
网络协议 Linux Shell
http“超级应用与理解”
http“超级应用与理解”
|
3月前
|
存储 安全 Java
从HTTP到Tomcat:揭秘Web应用的底层协议与高性能容器
从HTTP到Tomcat:揭秘Web应用的底层协议与高性能容器
|
3月前
|
Java API Spring
使用OkHttp在Spring Boot应用中发送HTTP请求
使用OkHttp在Spring Boot应用中发送HTTP请求
75 0
|
3月前
|
数据采集 监控 JavaScript
Python网络爬虫进阶:自动切换HTTP代理IP的应用
Python网络爬虫进阶:自动切换HTTP代理IP的应用
|
3月前
|
网络协议 Python
Python网络编程(四),HTTP协议的python应用
Python网络编程(四),HTTP协议的python应用
35 0
|
3月前
|
缓存 前端开发 JavaScript
Angular Service Worker 在 PWA 应用 HTTP 交互中扮演的角色
Angular Service Worker 在 PWA 应用 HTTP 交互中扮演的角色
45 0