WCFクライアントを使用してサーバーからデータを取得するアプリケーションを構築しています。C#winformアプリケーションとスレッド化されたWCFクライアント
多くのユーザーがUIを変更する必要があり、アプリからの応答を失いたくないため、サービスへの呼び出しが非同期であることを希望します。
私は*Completed
と*Async
を使用してみました:
ServiceUserClient client = new ServiceUserClient();
client.FindUserCompleted += delegate(object sender, FindUserCompletedEventArgs e)
{
// here e.Result always fails
};
client.FindUserAsync(text);
*完成したデリゲートの内部で、私は常にエラーを取得します(接続がリモートホストによって閉じ:私は、私は見つけることができるすべてのログを有効にしますが、私はまだ理由を理解していませんこれらのエラーが発生します)
同期呼び出しは常に機能します。
私はサービスへのすべての呼び出しを処理するクラスを持っています。
スレッドクラスのような内部で同期呼び出しを行う方法はありますか?
あなたはまた、クライアントとサーバーの両方でトレースWCFを使用しましたか? http://msdn.microsoft.com/en-us/library/ms733025.aspx –
はい、私はまだ私にこのエラーを与える理由を理解できません:net.tcpへの接続を確立しようとしている間、操作が中断されました:///。 –
Keeper
e.Resultを取得する前に必ずe.Errorをチェックします。 e.Errorとは何ですか? –