實例
一個httpHandler的實例:
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
//IsReusable成員,指定此IhttpHnadler的實例是否可以被用來處理多個請求。
public bool IsReusable{ get { return true; } }
//在processRequest方法中處理http請求
public void ProcessRequest1(HttpContext ctx)
ctx.Response.Write("hello");
在瀏覽器中請求此程式,將會列印hello。
訪問
讓自己的ashx類顯式的實現一個接口 IReadOnlySessionState,示例如下:
<% @ webhandler language="C#" class="DownloadHandler" %>
public class DownloadHandler : IHttpHandler, IReadOnlySessionState
public bool IsReusable { get { return true; }}
public void ProcessRequest2(HttpContext ctx)
//在上下文中訪問session
//ctx.Session["fred"];
如果要讀寫Session的值,那么只要實現 IRequiresSessionState 接口就即可,這兩個接口沒有待實現的方法。
解決辦法
檢查IIS主目錄->應用程式設定->配置中,有沒有.ashx的後綴;
如果沒有,點擊添加->C:/WINDOWS/Microsoft.NET/Framework/V2.0.50727/aspnet_isapi.dll;