2

我想在我的 asp.net 项目中实现 HTTPHandler。我按照链接做同样的事情。我在根目录中创建了一个名为 App_code 的文件夹。他们给我写了一个MyHTTPHandler类。它具有 Reusable 属性,我也处理 Process

public class HelloWorldHandler : IHttpHandler
{
    public HelloWorldHandler()
    {
    }

    public void ProcessRequest(HttpContext context)
    {

        context.Response.ContentType = "text/plain";

        if (context.Request.RawUrl.Contains(".cspx"))
        {
            string newUrl = context.Request.RawUrl.Replace(".cspx", ".aspx");
            context.Server.Transfer(newUrl);
        }

    }

    public bool IsReusable
    {
        // To enable pooling, return true here.
        // This keeps the handler in memory.
        get { return false; }
    }
}

处理程序没有被解雇。由于我是 ASP.Net 的新手,所以我无法弄清楚出了什么问题。我还输入了 web.config 中所需的部分。我浏览了很多链接,有些人说你需要在 IIS 中复制代码。我无法理解。请指教

4

1 回答 1

0

不需要在 IIS 中进行任何设置,除非您想处理一些已经注册的路径。一般情况下,您需要做的就是将该<httpHandlers>部分添加到 web.config:

<configuration>
  ...
  <system.web>
    ...
    <httpHandlers>
      <add verb="*"
           path="HelloWorldHandler.ashx" 
           type="NamespaceName.HelloWorldHandler, WebApplicationName" />
    </httpHandlers>
    ...
  </system.web>
  ...
</configuration>

HelloWorldHandler.ashx是您需要用来触发处理程序的路径,NamespaceName.HelloWorldHandler是处理程序类的全名,包括所有命名空间,并且WebApplicationName是实现程序集处理程序的名称。

于 2013-06-22T08:57:28.763 回答