0

Webサービスの非同期呼び出しと非同期タスクの違いは何ですか。

数千行のデータを処理するWebサービスメソッドを呼び出す必要があるASP.NETアプリケーションを使用しています。このプロセスには通常2〜3分かかります(データの量によっては、それより短い場合もあります)。そのため、その特定のページのタイムアウトで常に実行します。

そのため、このWebサービスメソッドを非同期的に呼び出すことにしましたが、使用しているUIコンポーネントの1つのHTTPハンドラーが原因で競合が発生しました。その場合は幸運なことに、httphandlerディレクティブからページを削除できます。

これまでのところ問題はありませんが、ここで問題が発生します。同僚は、非同期Webサービス呼び出しの代わりに使用でき、ASP.NETページの非同期タスクで同期呼び出しをラップし、ディレクティブを保持できることを発見しました。コンポーネントを作成し、タイムアウトを取得せずにWebサービスメソッドを実行します。

だから今、私の懸念は、非同期呼び出しの代わりに非同期タスクを使用してどのような問題を見つけることができるかということです。

前もって感謝します。

4

2 に答える 2

0

私があなたのシナリオを理解していれば、問題はないはずです。どちらの場合も、ページは非同期です。どちらの場合も、サービスが完了するのを待つ必要はありません。サービスの実行中にリクエストスレッドを放棄します。どちらの場合も、サービスを同期的に呼び出した場合と同じように、ページの実行に時間がかかります。

于 2009-06-22T16:05:05.180 に答える
0

ちなみに、Webサービスはこのように使用しないでください。HTTPタイムアウトが非常に短いのには理由があります。実際のサービスが取得するフラグをDBに設定するか、Webサービスがプロセスを生成することにより、Webサービスにタスクをトリガーさせる必要があります。

于 2009-06-22T16:08:19.050 に答える