创建进程查看处理程序
在 ASP.NET 中,主要使用两种方法来创建 HTTP 处理程序。第一种是通过创建带有 ASHX 扩展名的文件,另一种是创建实现 System.Web.IHttpHandler 的类,请参阅 IHttpHandler Interface。本文将着重介绍第二种形式。要创建 HTTP 处理程序,需要创建一个程序集(通常是一个代码库项目)和一个实现 System.Web.IHttpHandler 的类。然后将该类注册到 Web.Config(或 machine.config)文件中,然后它就可以接收请求了。如果查看 machine.config 文件(在相应命名的 httpHandlers 节中),将看到许多当前已注册的 HTTP 处理程序,包括 System.Web.UI.PageHandlerFactory(ASP.NET 页面的主处理程序)。在编写 HTTP 处理程序时,其实就是在定义处理请求的新方法。
所有 HTTP 处理程序均通过实现 System.Web.IHttpHandler Interface 来创建。此接口需要创建一个属性和一个方法,如表 3 所示。
表 3:IHttpHandler 接口的成员
| 成员 | 类型 | 说明 |
| IsReusable | 属性 (Boolean) | 确定该处理程序的实例是否可以重复使用。通常,该属性应返回 true,除非处理程序需要对某个资源的独占访问。 |
| ProcessRequest | 方法 | HTTP 处理程序的“主”方法。将在此添加对请求的所有处理。该类传递当前 ASP.NET 上下文。可以从此上下文中检索请求对象和响应对象。 |
实现 IHttpHandler
创建 HTTP 处理程序的大量工作集中在实现处理程序的 ProcessRequest。通常,需要存储当前上下文的请求和响应对象,然后使用响应对象的编写方法创建输出。以下给出了用于进程查看处理程序的 ProcessRequest 资源的 Microsoft Visual Basic® .NET 源。
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
_context = context
_writer = New HtmlTextWriter(context.Response.Output)
'we only want to do this if we're enabled
If _config.Enabled Then
_writer.WriteLine("<html>")
_writer.WriteLine("<head>")
_writer.WriteLine(Me.StyleSheet)
_writer.WriteLine("</head>")
_writer.WriteLine("<body>")
_writer.WriteLine("<span class=""content"">")
'write content here
'create table
Dim t As New Table()
With t
.Width = Unit.Percentage(100)
.CellPadding = 0
.CellSpacing = 0
End With
'the meat of the routine
'make certain this is a destination machine
If (PermittedHost(_context.Request.UserHostAddress)) Then
CreateHeader(t)
AddProcesses(t)
CreateFooter(t)
Else
CreateErrorReport(t)
End If
'write to the stream
t.RenderControl(_writer)
_writer.WriteLine("</span>\r\n</body>\r\n</html>")
End If
End Sub
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




