私はサーバーとクライアント間の通信にWCFを使用しています(どちらもC#で書かれています)。プログラムでWCFタイムアウトをデバッグモードで設定する
リリースモードでは、タイムアウトは〜20秒に設定する必要がありますが、デバッグモードではタイムアウトを発生させずにデバッグ/ステップ実行できるように、デバッグモードでそれらの値を高く設定します。
私はapp.configファイルを変更してタイムアウトを変更できることを知っています。しかし、私は2つの異なるバインディングと4つのタイムアウト値を持っていますので、いくつかの場所で変更する必要があり、忘れやすいです。
これを解決するには、プログラムでタイムアウト値を1時間に変更する小さな#if DEBUGセクションをコード内に作成したいと思います。
私はこれを行うには、次のコードを使用しようとしました:
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);
が、*タイムアウトプロパティは、私はコンパイルエラーを取得する読み取り専用です。
プログラムでスクラッチからバインディングを作成することは気にしません。 app.configの属性の一部を変更した場合、デバッグの動作がリリースの動作と似ていることを確認するために、同じ変更をコード内で行うことを忘れないでください(タイムアウトを除く)。
これを処理する方法については、誰でも良いヒントがありますか?
、ほとんどの人が今までに必要となる唯一のタイムアウトは' sendTimeout' https://social.msdn.microsoft.com/Forums/vstudio/en-ですUS/84551e45-19a2-4d0d-bcc0-516a4041943d /異なるタイムアウトの説明型 –