8

同じマシンでホストされている WCF Data Service に接続している Windows アプリケーションがあります。

アプリケーションの起動時に最初に発生するのは、0 ~ 3 個の結果を返すクエリです。コードは次のとおりです。

var environments = ctx.Environments
.AddQueryOption("$filter", "Environment eq '" + ConfigurationManager.AppSettings["environment"] + "'")
.AddQueryOption("$expand", "Departments, SecurityGroups");

次に行うことは、評価に約 10 秒かかる (environments.Count() == 0) かどうかを確認することです。最初は最も遅いように見えますが、常に 6 秒以上かかります。ただし、Fiddler を実行している場合は、常にすぐに結果が返されます。

Fiddler を実行すると高速になるのはなぜですか?

4

3 に答える 3

1

fiddler を実行すると、すべてのネットワーク呼び出しのプロキシとして機能しますよね? したがって、おそらくこのプロキシは、実際の DNS ホストよりも高速に応答します。バインディング構成で設定した接続タイムアウトは?

于 2012-10-01T13:42:25.090 に答える
0

Weismat が示唆するように、DNS の問題である可能性があります。WCF URL で DNS 名を使用している場合は、代わりに loopback ip (127.0.0.1) またはローカル IP を使用してみてください。

于 2012-09-27T13:38:57.400 に答える
0

すべての回答に感謝しますが、最終的には私の VS 2010 開発環境に何か問題があったようです。Fiddler を起動して実行し続けることで、最初の応答が遅いことに対処できましたが、コントロールの Telerik スイートをインストールした後、デバッグ中にアプリがフォームを読み込むのに 1 分近くかかっていました。これが他の問題に関連しているのではないかと疑って、VS 2012 をインストールし、プロジェクトをアップグレードしたところ、すべてが期待どおりに機能するようになりました。

ご回答ありがとうございます。

于 2012-11-26T15:42:49.947 に答える