在類庫中建Http Handler的操作很簡單,就是添加一個(gè)普通的類,然后把之前ashx里的代碼幾乎一模一樣貼到這個(gè)類中。但要注意命名空間和類名,因?yàn)橹笪覀儠?huì)用 到。
樣例Handler:
namespace EdiBlog.Core.Web.HttpHandlers
{
using System;
using System.Web;
public class ExampleHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
// 你自己的邏輯...
}
}
}
這個(gè)handler的邏輯不重要,你可以自己定義。關(guān)鍵點(diǎn)是實(shí)現(xiàn):IsReusable及ProcessRequest這兩個(gè)接口中定義的成員。
下面我們要去站點(diǎn)的web.config中注冊這個(gè)handler。如果你用的是IIS7及以上版本,并用了集成模式,就要這樣配置:
在system.webServer\handlers節(jié)點(diǎn)下添加:
<add name="ExampleHandler" verb="*" path="ex.axd" type="EdiBlog.Core.Web.HttpHandlers.ExampleHandler, EdiBlog.Core" />
其中,path是訪問handler用的路徑,并且拓展名需要在iis中注冊,如果你和我一樣用的是虛擬主機(jī),并且不能自己管理IIS,請不要使用如abc這樣的IIS默認(rèn)不支持的拓展名。
type里有兩個(gè)參數(shù),第一個(gè)是handler類的完整命名,第二個(gè)是程序集的名稱。
現(xiàn)在我們在網(wǎng)頁上就可以用ex.axd來訪問handler了!