2017-02-10 4 views
1

本番環境でのみDelegatingHandlerをアクティブにする方法はありますか?同様に、Application_Start()GlobalConfiguration.Configuration.MessageHandlers.Add(....として追加するのではなく、web.configから設定に追加しますか?web.configからDelegatingHandlerをアクティブにする

+0

あなたがメッセージハンドラに追加する必要がありますが、何を行うことができますが、それはその設計された目的を実行するか、単に聞かせなければならないかどうかを示します設定ファイルから設定を取得するためにハンドラを作成されませんリクエストは – Nkosi

+0

を通過します。問題のハンドラの例を表示します。 – Nkosi

+0

HTTPSを強制するのは、典型的なDelegatingHandlerです。開発環境にHTTP経由でアクセスし、開発者にIIS Express証明書などを許可しないようにします。 – qazcde

答えて

0

メッセージハンドラに追加する必要はありませんが、設計された目的を実行する必要があるかどうかを示す設定を取得するハンドラを作成するか、または要求を通過させるハンドラを作成します。

擬似コード

protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { 

    bool active = //...get configuration value; 

    if(active) { 
     //...perform some action 
    } 

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

    if(active) { 
     //...perform some action 
    } 

    return response 
} 
+0

私はあなたの解決策を理解しています。あなたがどのように通常どおりWeb.configから同様の動作を起動できるかを考えると、それはDelegatingHandlersの場合とは異なります。 – qazcde

+1

設定時に(config.MessageHandlers.Add( ')を呼び出す前に)ハンドラを追加するかどうかを#if!DEBUG構文を使って実装しました。 – qazcde

関連する問題