1

MVC/Web API、NET4.5 アプリケーションがあります。次のように独自のカスタム ハンドラーを作成しました。

public class MyMessageHandler : DelegatingHandler
{

    protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,  CancellationToken cancellationToken)
    {
        var requestDate = request.Headers.Date;
        // do something with the date ...


        var response = await base.SendAsync(request, cancellationToken);

        var responseDate = response.Headers.Date;
        // do something with the date ...

        return response;
    }


}

これは、API リクエスト ( http://server.com/api/resource ) に最適です。
また、マネージ モジュールを介してすべての要求を実行するように web.config を構成しました。

<modules runAllManagedModulesForAllRequests="true">

「html」または「js」ファイルのリクエストが届いた場合、それは MyMessageHandler を経由しません。したいと思います。

また、これが役立つかどうかはわかりませんが、静的ファイルの要求は、global.asax の Application_BeginRequest と Application_EndRequest を通過します。コードをそこに置くこともできますが、MyMessageHandler に置くことをお勧めします。

ありがとう

4

0 に答える 0