0

Web サービス プロキシの ABORT メソッドを呼び出すことで、クライアントからの Web サービス呼び出しを中止できます。

ただし、Web サービスがホストされているサーバーでは、処理が完了したときにのみ呼び出しが終了します。サーバーは、処理中に既に呼び出された Web メソッドに関連する他の入力を期待していないため、クライアントから閉じることができません。

サーバーで呼び出しを中止できる方法はありますか。つまり、サーバーが作業している大規模な計算を停止する (およびデータベースサーバーからデータをプルする) ことはできますか?

4

2 に答える 2

2

ASMX Web サービスを使用している場合、これを行う方法はありません。おそらく、他の誰かが WCF で可能かどうかについて話すことができます。

一般に、中断を予期するようにサービスを作成する必要があります。ほとんどのサービス コードは、そのようには記述されていません。

リクエストを頻繁に中止することを期待していますか? そうでない場合は、サーバー上で何もしないのが最善かもしれません。

于 2009-02-19T13:46:39.497 に答える
1

単純な同期要求応答について話しているので、どのように行うかわかりません。

メソッド呼び出しには通常どのくらいの時間がかかりますか?

あなたが本当に望む振る舞いは次のように聞こえます:

  • 何かを行う (データを処理する) 一連のアクションを開始し、Cookie を取得します
  • プロセスが完了すると (ポーリング/通知を受ける)、Cookie を使用して結果を取得します
  • Cookie を使用して、中止などの制御命令を渡す

これは、処理を関数呼び出しではなく、ワークフローとしてモデリングしているように聞こえます。

このモデルに切り替えることに大きなメリットがあることがわかった場合は、選択肢があります。それ以外の場合は、(まれに) 無駄な計算のコストを消費する方が簡単かもしれません。

于 2009-06-13T06:51:09.693 に答える