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ć?