ashx

一般處理程式(HttpHandler)是·NET眾多web組件的一種,ashx是其擴展名。一個httpHandler接受並處理一個http請求,類比於Java中的servlet。類比於在Java中需要繼承HttpServlet類。在net中需要實現IHttpHandler接口,這個接口有一個IsReusable成員,一個待實現的方法ProcessRequest(HttpContextctx) 。程式在processRequest方法中處理接受到的Http請求。成員IsReusable指定此IhttpHandler的實例是否可以被用來處理多個請求。

.ashx程式適合產生供瀏覽器處理的、不需要回發處理的數據格式,例如用於生成動態圖片、動態文本等內容。

基本介紹

實例,訪問,解決辦法,

實例

一個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;
擴展名填入:.ashx
保存即可解決。

相關詞條

熱門詞條

聯絡我們