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 {
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
取消"确认文件是否存在"前的钩. 最后点击”确定“。
最终演示效果: