問題: Silverlightアプリケーションで作業していて、WebContentからDomainContextに多くのデータをロードしています。 BusyIndicatorは現在のクエリを表示して、いくつかの異なるクエリの実行を開始しますが、ほとんどのデータでクエリに到達するとフリーズします。数分後、サーバーは次のクエリーに応答しません。DomainContextデータのロード中にSilverlightがフリーズする
デバッグ/試行されたソリューション: システムは、データを少なくロードすると機能します。私はそれがタイムアウトしたと仮定します。そのため、次のクエリが存在しない、つまりWebサービスに接続できないということが示されます。私はしばらく見回し、人々はタイムアウトと最大結果サイズを増やすことを提案しました。これらは他の問題を解決しているので、彼らはうまく働いている(つまり、それらが適用されている)ことは分かっていますが、この問題は解決しません。
私は、問題を特定して、データをロードすることとは何の関係もない他の愚かな問題ではないことを確認しました。この問題は、Webサービスのクエリ関数(戻り値;)から戻るときに発生します。つまり、Webサービス自体に問題はないはずです。したがって、両方のデバッグプリントが実行され、2番目のデバッグプリントが実行されます。
Webサービスコード:
public IQueryable<Person> GetPeopleWithSubscription()
{
Debug.WriteLine("Before");
IQueryable<Person> result = test();
Debug.WriteLine("After " + result.Count().ToString());
return result;
}
private IQueryable<Person> test()
{
return this.ObjectContext.People.Where(p =>
p.Subscriptions.Count > 0 ||
p.Subscriptions1.Count > 0 ||
p.ID < 0);
}
電話番号:古いクライアント(すなわち、問題が発生する前)はまだ動作しますので、また
...
_context.Load(_context.GetSubscriptionTypesQuery(), DataLoaded, false);
...
は、問題は、クライアント側であるように思われます新しいサーバーでしかし、私は問題が発生してからリポジトリ内の差分を調べてきましたが、違いが生じるはずのものは見つかりませんでした(そこにはないとは言いません)。
誰でもこの問題を解決できますか?詳しい情報が必要な場合は、私に知らせてください。