ASP.NET自定义处理程序

要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类。

该类有两个重要的参数:IsResuable属性和ProcessRequest方法。如果处理程序实例可以在不同的请求中重用,IsResuable就返回true。ProcessRequest方法接收带参数的HttpContext。HttpContext允许接收来自调用者的请求信息,并发回一个响应。

下面的实例主要是客户端请求url:http://localhost:9287/CallCustomHandler 然后调用处理程序返回一个html。

在VS中新建一个空网站:WebHandler,如图。

新建一个类库SampleHandler添加类CustomHandler

CustomHandler类的代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Web;

namespace SampleHandler

{

    public class CustomHandler:IHttpHandler

    {

        private string responseString = @"

            <DOCTYPE HTML>

            <html>

            <head>

            <meta charset=""UTF-8"">

            <title>Costom Handler</title>

            </head>

            <body>

            <h1>Hello from cumstom handler</h1>

            <h1>{0}</h1>

            <div>{1}</div>

            </body>

            </html>";

        public bool IsReusable

        {

            get

            {

                return true;

            }

        }

        public void ProcessRequest(HttpContext context)

        {

            HttpRequest request = context.Request;

            HttpResponse response = context.Response;

            response.ContentType = "text/html";

            response.Write(string.Format(responseString, request.UserHostAddress, request.UserAgent));

        }

    }

}

在WebHandler跟目录下Web.config中配置


1

2

3

4

5

<system.webServer>

    <handlers>

      <add name="CustomHandler" verb="*" path="CallCustomHandler" type="SampleHandler.CustomHandler,SampleHandler"/>

    </handlers>

  </system.webServer>

  运行效果图为

时间: 2024-10-10 22:45:03

ASP.NET自定义处理程序的相关文章

asp.net一般处理程序(.ashx)动态生成验证码案例。

{使用一般处理程序动态生成验证码} 1.新建WebSite项目,添加一般处理程序命名为  yzm.ashx,添加如下代码: public void ProcessRequest(HttpContext context)    {   //将context.Response.ContentType = "text/plain";修改为context.Response.ContentType = "image/JPEG";        context.Response

asp .net 一般处理程序

asp.net:一般处理程序.ashx效率比较高效,WebForm(aspx)比较消耗资源,MVC(效率刚好介于两者之间)asp.net里常用的文件.ashx 一般处理程序HttpHandler,asp.net核心程序,但一般使用.aspx(常用于不需要返回大量html代码的时候).aspx 常用程序webForm,用于创建网页和网页进行编程的核心文件(前台文件)(要返回大量html).aspx.cs 用于编写大量的C#业务代码和.aspx配套使用.ascx  指明一个 asp.net 用户定义

初始ASP.NET---一般处理程序

问题来源: 今天在敲一个小的demo,利用Jquery实现级联下拉框,敲的过程中发现无论怎么和源码对照都无法显示想要的功能.这才想着原来是没有写后台代码,询问一清同学的时候,他告诉我可以利用ASP.NET的一般处理程序. 我果然是菜鸟初学者,因为我还没有接触过一般处理程序! 什么是一般处理程序: 一般处理程序:是一个实现System.Web.IHttpHandler接口的特殊类.任何一个实现了IHttpHandler接口的类,是作为一个外部请求的目标程序的前提.(凡是没有实现此接口的类,就不能被

asp.net自定义错误页面

ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件.Application_Error 事件以及应用程序配置文件 (Web.config). 如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误.在 <customErrors> 部分,可将重定向页指定为默认的错误页 (

ASP.NET -- 一般处理程序ashx

ASP.NET  --   一般处理程序ashx 如果在一个html页面向服务器端请求数据,可用ashx作为后台页面处理数据.ashx适合用作数据后台处理,相当于WebForm中的aspx.cs文件或aspx.vb文件. 入门案例:html页面向ashx页面请求数据,ashx作为后台页面返回数据. 前端html页面: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co

ASP.NET自定义404和500错误页面

在ASP.NET网站项目实际上线运行的过程中,有时候在运行环境下会出现400错误或者500错误,这些错误默认的页面都不友好,比较简单单调,其实我们可以自行设置这些错误所对应的页面,让这些错误跳转到我们指定的路径.此文将介绍如何在ASP.NET项目中设置404错误和500错误为例. 首先我们可以到网上下载到一些优美的404错误页面或者500错误页面的HTML模板,或者你也可以自行制作个HTML模板.然后将该页面放入到你的网站项目中,如果你的项目为WebForm项目,则你将需要新建一个Error.A

(九)ASP.NET自定义用户控件(2)

http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗体框架中: 用户控件:它是一小段页面,可以包括静态 HTML 代码和 Web 服务器控件.用户控件的好处是一旦创建了它,就可以在同一个 Web 应用程序的多个页面重用它.用户控件可以加入自己的属性,事件和方法. 自定义服务器控件:它是被编译的类,它通过编程生成自己的 HTML .服务器控件总是预编译

ASP.NET 自定义 MembershipProvider和RoleProvider

ASP.NET中默认的MembershipProvider和RoleProvider是Sql Server的,但是默认的提供类有时候不能满足要求,如数据库不是Sql Server,或者想使用自己的数据库表结构等原因不想使用自带的提供类,可以自定义提供类 在web.config中定义forms验证的路径和自定义提供类的名称 <?xml version="1.0"?> <configuration> <system.web> <compilatio

MongoDB实现ASP.NET 自定义Session

由来     由于HTTP协议是无状态的,客户端与服务器端进行"请求-响应"操作后,建立的连接就释放了,服务器端根本不知道刚才是哪个客户端访问的.但是有些场景是需要知道客户端的状态的,最典型的就是登陆问题,成功登陆后一段时间内就不需要再登陆.为了解决这个问题,服务器端引入了Session技术,它将会话状态保存在服务器端的技术. Session原理     当用户打开浏览器,请求某个网站的时候,服务器接收请求后,就会在内存中为该请求分配一个内存空间,这个内存空间就叫Session.一个S