Programowo ustaw limit czasu WCF w trybie debugowania

Używam WCF w komunikacji między serwerem a klientem (oba napisane w C #).

W trybie uwolnienia limity czasu powinny być ustawione na ~ 20 sekund, ale w trybie debugowania chcę ustawić je na wyższą wartość, dzięki czemu mogę debugować / krokować w moim kodzie bez wystąpienia limitu czasu.

Wiem, że mogę zmienić limity czasu, modyfikując plik app.config. Mam jednak dwa różne powiązania i 4 wartości limitu czasu w każdym, więc musiałbym zmienić się w kilku miejscach i łatwo jest zapomnieć.

Aby rozwiązać ten problem, chciałbym mieć mały kod # DEBUG w moim kodzie, który programowo zmienia wartości limitu czasu na 1 godzinę.

W tym celu próbowałem użyć następującego kodu:

Configuration configuration = 
       ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ServiceModelSectionGroup serviceModel = 
       ServiceModelSectionGroup.GetSectionGroup(configuration); 

BindingsSection bindings = serviceModel.Bindings;

foreach (var configuredBinding in bindings.WSHttpBinding.ConfiguredBindings)
{
 configuredBinding.CloseTimeout = new TimeSpan(0, 30, 0);
 configuredBinding.OpenTimeout = new TimeSpan(0, 30, 0);

ale właściwości * Limit czasu są tylko do odczytu, więc otrzymuję błąd kompilacji.

Nie lubię programowo tworzyć powiązań od podstaw. Jeśli zmienię niektóre atrybuty w app.config, muszę pamiętać o dokonaniu tej samej zmiany w kodzie, aby upewnić się, że zachowanie debugowania jest podobne do zachowania w wydaniu (z wyjątkiem limitów czasu ..)

Jak sobie z tym poradzić?

questionAnswers(2)

yourAnswerToTheQuestion