手机版

ASP NET的自定义同步HTTP处理程序(图形教程)

时间:2021-10-05 来源:互联网 编辑:宝哥软件园 浏览:

1.前言说起这个简单的教程,恰好是我在写另一页指令的时候看到的。然后我进来看看是什么,发现我们只能用。ashx比以前,我们只能在申请这份文件时做出回应。这些似乎使它不灵活,不能使我们灵活地使用它。通过定制HTTP处理程序,可以完全消除上述问题,HTTP处理程序只是的一个类文件。cs,你只需要简单的准备就可以获得很大的灵活性。1.您可以自定义用户在访问和向客户端呈现数据时应该响应的网页。2.您可以为所有后缀名称一致的请求文件定义一个处理程序。3.有同步和异步两种选择。我相信有些人对以上有一些误解,在这里我需要解释一下它的重要意义。我们先以:1为例。比如你访问http://www的时候。****.com/web1.msll,你一定要找到问题所在。后缀是。msll。自从你访问了网页之后,你就再也没有见过它。这确实是自定义HTTP处理程序的一个特性,后缀名称可以自行伪造。这时,你一定认为web1是。但结果是web1不是。cs文件。它们是通过绑定实现的。比如我实现了一个he.cs的类,然后绑定到hehehe.ppd,然后当你访问http://www.3 * * * * *。com/hehehe.ppd,he.cs的输出结果会响应这个页面。2.我们仍然假设您访问http://www.3 * * * *。com/list1.ssmhttp://www.3 * * *。www.com/list 2 . SSM http://。* * * *.com/list3.ssm如果我告诉你这三个看似不同的页面实际上是一个HTTP处理程序的输出结果,这其实很容易理解,如果我编写一个bbsss.cs的类并实现相关函数。然后我把它绑定到*。ssm,而你可以发现这是*.ssm,这时,你会遵循你的正常思维,即只要申请的页面带有后缀即可。ssm使用同一个bbsss.cs类,这有意思吗?2.注册和绑定为什么要有这两页?还要注册和绑定这两个?答案是你不可能通过只写一个类vs就知道自己在做什么,所以我们需要在web.config中注册我们的自定义HTTP处理程序Binding就是让iis知道我们的网站包含一个自定义HTTP处理程序。(我会以iis7为例说明如何绑定。) 1.注册和复制代码如下:配置系统。Web HttpHandlers添加动词=' * '路径='!-在此处写入要绑定的客户端应用程序的页面(*。SMM *。FFS,网络1 . FFE)——“类型=”!-在此处写入处理程序的类名-'/httphandlers/system。web/配置。以上部分我都是自己写的,有评论。2.bind (iis7) 1)打开iis7->打开网站节点->点击你的网站名称。2)双击

3)点击

4)

5)最后,点击OK,在iis中完成绑定(对于下面完整的例子,我将用文字介绍这个过程)。第三,虽然我们引入了注册和绑定,但并不是全部,对类的实现也有一定的要求。根据MSDN文档的描述,必须实现ProcessRequest方法和is resume属性。关于ProcessRequest,可以暂时理解为Page_Load(即使低于Page_Load)。其次,没有内置的请求和响应。也许有些人会崩溃。怎么写?一个很简单的问题是,我们把IsReusable的类型定义为没有内置的bool,只要实现get,就不需要实现set。如果我们返回true,我们将使用线程池。如果我们返回false,我们将不会使用它。对这个类文件的放置也有要求。应该放在App_Code文件夹中(这个特殊的文件夹可以直接在vs的站点中创建)。4.完成示例(创建自己的类)1。下面是HelloWorldHandler.cs类的具体实现(放在App_Code文件夹中)。复制代码如下:使用系统;使用系统。集合。通用;使用系统。Linq使用系统。Web///摘要///hello world handler的摘要描述////摘要公共类hello world handler : ihttphandler { public hello world handler(){ }。public void process Request(HttpContext上下文){ HttpRequest Request=context。请求;http响应响应=上下文。回应;回应。write(' html ');回应。写(' body ');回应。写(' h1 hello/h1 ');回应。write('/body ');回应。write('/html ');} public bool IsReuse { get { return false;}} }2.以下是web.config的内容复制代码,代码如下: httphandlers add verb=' * ' path=' * '。sample ' type=' hello world handler '//httphandlers 3。iis配置(别忘了将项目部署到IIS)以下是具体配置

然后测试http://localhost/sample application/test . sample(当端口为80时),就可以看到自己的成绩了。5.之后,基本掌握了自定义同步HTTP处理程序。当然,这只是一小部分。稍后,我们将会接触到异步,因为当用户大量访问时,同步会很快耗尽服务器资源,降低用户的实用性。

版权声明:ASP NET的自定义同步HTTP处理程序(图形教程)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。