一、前言
說來這片簡單的教程還真是碰巧,是剛好我在寫另一個頁指令的時候看到的。就跟著進來看了看是什么東西,發現比我們之前只會用.ashx,并且只能在申請這個文件才可以進行響應。這些似乎讓它變不靈活,不能讓我們靈活的應用。而自定義HTTP處理程序可以完全消除上面的問題,它只是一個.cs的類文件,并且你只要按照很簡單的準備工作就可以獲得很多的靈活度:
1.可以自定義用戶訪問何網頁時響應該文件并把數據呈現發送給客戶端
2.可以對所有具有一致的后綴名的請求文件定義一個處理程序
3.具有同步與異步選擇
我相信一定有人對于上面的說有一定不的理解,這里我需要解釋它的一個重要意義,那么大家就自然知道它的靈活所在了。
我們先舉例:
1.比如你訪問 http://www.****.com/web1.msll
你一定發現了問題所在.后綴名是 .msll 你瀏覽網頁到如今一定沒有見過。而這個的確就是自定義HTTP處理程序的一個特點所在,后綴名可以自己偽造。這個時候你一定會認為 web1 是那個 .cs 文件的名稱,但是結果是 web1 根本不是那個 .cs 文件的文件名.他們是通過綁定來實現的。比如我實現了一個 he.cs 的類,然后我將其綁定到 hehehe.ppd 那么當你訪問 http://www.*****.com/hehehe.ppd 那么響應這個頁面的是 he.cs 的輸出結果
2.我們還是假設你訪問 http://www.****.com/list1.ssm
http://www.****.com/list2.ssm
http://www.****.com/list3.ssm
假如我告訴你這個三個看似不同的頁面其實都是一個 HTTP處理程序的輸出結果,這個其實很好理解,如果我寫了一個 bbsss.cs 的類,并且實現了有關功能。然后我將其綁定到 *.ssm 你可以發現這里是 *.ssm 這個時候你就按照你正常的思考,就是只要是對后綴名是 .ssm 頁面的申請都是使用同一個 bbsss.cs 類,這下是不是有趣了
二、注冊與綁定
為什么要有這兩部呢?而且還是要注冊與綁定這兩個呢?
答案是 你只寫一個類 vs是不可能知道你這個東西是干什么的,所以我們需要在 web.config 中注冊我們自定義的HTTP處理程序。而綁定則是讓iis知道我們這個站點中含有一個自定義的HTTP處理程序。(下面我將以 iis7 為例說明如何綁定)
1.注冊
代碼如下:
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="<!-- 這里寫需要綁定的客戶端申請的頁面(*.smm,*.ffs,web1.ffe) -->" type="<!-- 這里寫處理程序的類名 -->"
新聞熱點
疑難解答
圖片精選