0

私はmsdnから取得したhttphandlerを持っています、このように見えます

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("hello"); 


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

だから私はそれをコンパイルしてHandler.dll入れましたC:\inetpub\wwwroot\Handler

次に、このWeb.configファイルを追加しました

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

そしてそれC:\inetpub\wwwroot\Handlerも入れます

ここに画像の説明を入力してください

これで私は行くことができ、ハンドラーがリクエストをインターセプトするだろうと思いましhttp://localhost/Handler/page.abcたが、これはこのようには行きませんか?おそらく.configファイルだと思いますか?助けてください。

ここに画像の説明を入力してください

4

1 に答える 1

1

構成が適切ではありません。クラスの名前空間をタイプに追加し、ハンドラーdllを宣言して、typeノードを変更する必要があります。

<configuration>
  <system.web>        
<system.webServer>
    <handlers>
        <add verb="*" path="*.abc" name="HelloWorldHandler"
        type="HelloWorldHandler" />
    </handlers>
</system.webServer>
  </system.web>
</configuration>
于 2013-02-16T06:37:04.903 に答える