2011-11-14 4 views
1

私のwcfサービスは、多くのSQLクエリを実行します。その後、XMLファイルをクライアントアプリケーションに送信します。WCFサービスを使用するクライアントアプリケーションのタイムアウトの変更は何ですか?

すべてのクエリを実行するまでに30分以上かかる。

DataBaseでWCFサービスが正常に実行されています。

しかし、私のサービスからの応答を得る前に、クライアントアプリケーションがクラッシュしています。それは約20分のためにクラッシュしています。

クライアントの設定ファイルで以下の変更を行った。しかし、依然としてクライアントアプリケーションはクラッシュしています。

です。CloseTimeout = "4時20分00秒" です。OpenTimeout = "4時20分00秒" receivetimeoutの= "4時00分00秒" sendTimeout = "4時00分00秒"

任意のアイデア?

おかげで、 JN

+0

あなたのサービスでも同様の値にタイムアウトを設定してください。ほとんどの場合、サービスはデフォルト設定(1分、私は信じています)後にsendTimeoutでタイムアウトします。 WCF呼び出しで30分かかるクエリを実行している場合は、a)クエリを試して最適化するか、またはb)問題に対して別の方法をとることができます。クライアントが応答を待つ時間は30分ですひどく長い時間のように思える。 – Tim

答えて

2

は、長い間、サービスが戻るのを待ってはいけません。非同期的な方法でXML生成プロセスを開始するメッセージを出します。その後、サービスに戻って割り当ての状態を確認するか、デュプレックスバインディングを行い、サービスがクライアントにコールバックして進行状況を示すか、ジョブが完了したことを知らせます。

Workflow Foundationは、この複雑な非同期動作をよりシンプルにするための良い機会を提供します。 http://msdn.microsoft.com/en-us/library/ms741723(v=vs.90).aspxでサンプルの1つを取って、自分のスピードを上げてください。

関連する問題