zoukankan      html  css  js  c++  java
  • 如何:创建同步 HTTP 处理程序

    本主题阐释一个 HTTP 处理程序的代码,该处理程序对 ASP.NET 应用程序中其 URL 以 .sample 结尾的资源执行同步请求处理。此代码示例阐释了下列内容:

    • 一个 HTTP 处理程序类的代码。该类必须实现 ProcessRequest 方法和 IsReusable 属性。

    • Web.config 文件中注册该处理程序并将 .sample 文件扩展名映射到该处理程序所需的元素。

    • 如何在 Internet 信息服务 (IIS) 中将 .sample 文件扩展名映射到 ASP.NET。

    Note注意

    在将配置文件更改为包含对新处理程序的引用后,ASP.NET Development Server 将处理对新资源的请求。若要启用 IIS 以处理该请求,请参见下面的过程。

    当用户请求一个其 URL 以 .sample 结尾的资源时,Web 服务器将该请求转发给 ASP.NET。然后 ASP.NET 调用 HTTP 处理程序,后者返回一个响应。该响应由该处理程序动态创建;不需要存在具有文件扩展名 .sample 的文件。有关 ASP.NET 如何与 Web 服务器交互的更多信息,请参见 ASP.NET 生命周期

    创建自定义 HelloWorldHandler HTTP 处理程序类

    1. 在网站的 App_Code 目录中,创建一个名为 HelloWorldHandler 的类。

    2. 向类文件中添加下面的代码。

    3. using System.Web;
      public class HelloWorldHandler : IHttpHandler
      {
          public HelloWorldHandler()
          {
          }
          public void ProcessRequest(HttpContext context)
          {
              HttpRequest Request = context.Request;
              HttpResponse Response = context.Response;
              // This handler is called whenever a file ending
              // in .sample is requested. A file with that extension
              // does not need to exist.
              Response.Write("<html>");
              Response.Write("<body>");
              Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
              Response.Write("</body>");
              Response.Write("</html>");
          }
          public bool IsReusable
          {
              // To enable pooling, return true here.
              // This keeps the handler in memory.
              get { return false; }
          }
      }

    这段代码实现 ProcessRequest 方法并将一个字符串写出到当前 HttpContext 对象的 Response 属性中。

    注册自定义 HTTP 处理程序

    创建完自定义 HTTP 处理程序类后,必须在应用程序的 Web.config 文件中注册它。这样,ASP.NET 在接收对其 URL 以 .sample 结尾的资源进行的请求时,可以找到该处理程序。

    在 Web.config 文件中注册自定义 HTTP 处理程序

    1. 将一个 Web.config 文件添加到网站(如果该文件尚未存在)。

    2. 将下面突出显示的元素添加到 Web.config 文件中。

      <configuration>
          <system.web>
          <httpHandlers>            <add verb="*" path="*.sample"                   type="HelloWorldHandler"/>        </httpHandlers>
          </system.web>
          </configuration>

      这段代码按类名注册自定义处理程序,并将 .sample 文件扩展名映射到该处理程序。

    1. 在 IIS 6.0 中配置 HTTP 处理程序扩展名

  • 相关阅读:
    SharePoint 2010 User Profile Sync Service自动停止
    如何区别多个svchost.exe?
    Log Parser分析IIS log的一个简单例子
    Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    Windows中右键点击文件夹, 结果找不到共享选项卡, 怎么办?
    介绍SOS中的SaveModule命令
    SharePoint中Draft版本的文档不会收到document added的Alert Email
    和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例
    门户网站
    C#基础—— check、lock、using语句归纳
  • 原文地址:https://www.cnblogs.com/wzyexf/p/363651.html
Copyright © 2011-2022 走看看