HTTP運行時的簡單應用

來源:互聯網
上載者:User

       所謂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();

}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.