人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【XML Webサービス】を開発していて困っています。

すごく時間のかかる処理をWebサービスとして提供した場合、クライアントからその処理を呼び出すとタイムアウトしてしまいますよね? これをタイムアウトさせない方法を教えてください。

理想的には、クライアントで設定したコールバック関数のようなものをWebサービス側で処理の途中にコールしてステータスを通知できるような方法が取れると良いです。

あるいは、呼び出し側に「処理は終わっていないけど止まってはいないよ」と通知して、処理が正常に継続している間はタイムアウトを防ぐような方法でしょうか。

開発環境としては Visual Studio 2005 を想定していますが、その環境に限定した話でなくても構いません。よろしくお願いします。

●質問者: you1982
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Visual Studio Webサービス XML クライアント ステータス
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● llusall
●200ポイント

質問内容の「すごく時間のかかる処理」=「DBアクセス」と勝手に解釈して回答させていただきます。


タイムアウトには、サーバーサイドでのセッションタイムアウトと

クライアントサイドでのブラウザのタイムアウトの2つがあるかと思います。

ご質問のケースでは後者に該当でしょうか。

これには、適度な間隔でターゲットブラウザにレスポンスを送出することで

対処できるかと思います。


次のページには、ASP+ADO+SQLServer+非同期クエリでの例が紹介されています。

何か参考になれば幸いです。(はずしていたらすみません。)

時間のかかるクエリでもブラウザをタイムアウトさせない (unibon)

◎質問者からの返答

ありがとうございます。これは参考になりました。「時間のかかる処理」というのは、今回の場合は計算なので、非同期処理にしなくても中でResponseは呼べそうですね。

後は欲を言えば単にタイムアウトしないだけでなく、現在の処理状況(計算が何パーセント完了したか)をクライアントに通知できる方法があると良いのですが、どうなんでしょうか・・・。


<補足>

ということで、以降、ご回答いただける方向けに補足させていただきます。

「時間のかかる処理」とは計算処理で、中で何かの呼び出しを追加してあげることは可能です。

また、クライアントからの呼び出し方法は同期処理を考えています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ