代码改变世界

HttpHandler在IIS中的部署问题(扩展名映射)

2009-06-18 08:42  Kevin-wang  阅读(419)  评论(0编辑  收藏  举报

1.实现IHttpHandler接口

 

 1     public class ReportViewHandler : System.Web.IHttpHandler, System.Web.SessionState.IRequiresSessionState
 2     {
 3         #region IHttpHandler 成员
 4 
 5         public bool IsReusable
 6         {
 7             get { return false; }
 8         }
 9 
10         public static string Msg
11         {
12             get { return System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.msg"as string; }
13             set { System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.msg"= value; }
14         }
15 
16         public static string ContentType//content_type
17         {
18             get { return System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.content_type"as string; }
19             set { System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.content_type"= value; }
20         }
21 
22         public static byte[] Content//content
23         {
24             get { return System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.content"as byte[]; }
25             set { System.Web.HttpContext.Current.Session["mylib.system.web.MyHandler.content"= value; }
26         }
27 
28         public void ProcessRequest(System.Web.HttpContext p_Context)
29         {
30             p_Context.Response.ContentType = ContentType;
31             p_Context.Response.OutputStream.Write(Content, 0, Content.Length);
32 
33             Content = null// 释放内存
34         }
35         #endregion
36     }

2.在Web.config里配置

 在Web.config配置文件中的httpHandlers节 添加

<add path="ReportView.dsrv" verb="*" type="Report.ReportViewHandler,ReportLib.Web" validate="false" />

 

3.在IIS里添加映射

操作方法:IIS站点属性 ->主目录 ->  配置

 

点击“插入”按钮,选择或输入C:\WINDOWS\Microsoft.NET\Framework\v2.*****\aspnet_isapi.dll
取消"确认文件是否存在"前的钩. 最后点击”确定“。

 

最终演示效果: