2017-02-10 2 views
1

Есть ли способ, что DelegatingHandler активен только в производственных средах? Как добавить его в конфигурацию из web.config вместо добавления его на Application_Start() как GlobalConfiguration.Configuration.MessageHandlers.Add(....?Активировать DelegatingHandler из web.config

+0

нет вам нужно добавить его в обработчик сообщений, но то, что вы можете сделать, это создать обработчик, чтобы получить настройки из конфигурационного файла, который будет указывать, если она должна выполнять свою проектную цель или просто позволить запрос проходит через – Nkosi

+0

Покажите пример обработчика, о котором идет речь. – Nkosi

+0

Это типичный DelegatingHandler для обеспечения HTTPS. Я хочу, чтобы наши среды разработки были доступны через 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

Я закончил его реализацию с использованием синтаксиса #if! DEBUG для добавления или отсутствия обработчика во время настройки (перед вызовом 'config.MessageHandlers.Add (') – qazcde

Смежные вопросы