私はwcfサービスに何千ものアイテムを削除するこのクライアントアプリケーションを持っています。データはバルクで送信されるので、操作をキャンセルしても(進行状況バーで)、すべての項目が削除されます。私が望む動作は、サービス内の削除操作を取り消し、削除されていない項目を取り出せるようにすることです。ありがとうございました。WCFサービスに通知すると、現在実行中の操作をキャンセルし、残りのデータを返します。
答えて
どのInstanceContextModeを使用していますか?
あなたがしたいことは、InstanceContextModeシングルトンまたはセッションでは動作しますが、PerCallでは動作しません。
一括操作で削除を開始するメソッドがOneWayであるとします。
サービスでboolフィールド(最初はfalse)を作成します。レコードを1つずつ削除するループは、フラグをチェックし、フラグがtrueの場合は停止します。
サービスで、そのフィールドをtrueに設定する別のメソッドを作成します。 「キャンセル」ボタンを押すと、あなたのウェブサイトから新しいメソッドを呼び出します。レコードを削除するループは破損します。
削除されなかったレコードを返すのはちょっと難しいです。削除するレコードのリストは、サービスクラスのmemebrである必要もあります。そのため、削除を停止するメソッドはリストにもアクセスできます。 db shoulkdから削除するメソッドは、リストからレコードを1つずつ削除して、残りのアイテムを追跡することもできます。
すぐに2番目の方法でリストに戻ることはできますが、正確な結果は保証されません。私がやることは、戻ってくる前に200ミリ秒待ちます。そうすれば、リストから削除された項目が実際にdb内で削除されることがわかります。これは明らかである
希望...
はい、InstanceContextModeはPerSessionであり、削除操作はOneWayです。私はあなたのポイントを得る、私はしようとし、何が起こるかを見てみましょう。残りの未削除アイテムに関しては、私はそれらを元に戻す必要はないかもしれません。クライアント側のアイテムを更新する別の操作を実行しようとします。ありがとう。 –
- 1. 別のスレッドに、操作が実行中または終了していることを通知します。
- 2. 現在の操作を中止するWCFタイムアウト?
- 3. 実行中のサービスと通信する
- 4. クライアントのアボートでWCF操作をキャンセルします。
- 5. ユーザーが新しいものを実行したときに現在の実行をキャンセルする、AsyncTask
- 6. 現在実行中のスレッドを知り、それを停止する方法iOS
- 7. 現在実行中のブラウザの現在のWebアプリケーションを検出します。
- 8. WCFサービスは、普通の古いオブジェクト、または実際に作業しているクラスを返しますか?
- 9. 現在実行中のアクティビティのインスタンスを取得しますか?
- 10. RVM:現在実行中のルビーのGemsetを作成する
- 11. WCFサービス上の現在のエンドポイントを取得しますか?
- 12. 現在実行中のコンソールアプリケーションでメソッドを呼び出します。
- 13. カスタムHTMLデータに対して操作を実行しますか?
- 14. テスト中にモックを返し、通常の実行中に実際の実装を返すクラスインスタンス
- 15. "php_connect_nonb()が失敗しました:現在進行中の操作(115)"が間欠的に発生します
- 16. WCFサービス操作からEF4 POCOを返すときにCommunicationExceptionが発生する
- 17. WCFデータサービス - 関連するエンティティを返さないサービス操作
- 18. リスト/配列/コレクションをWCFデータサービス(OData)サービス操作に渡します。
- 19. 実行中のプロセスをキャンセルする
- 20. 実行中のWCFサービスのURL /エンドポイントアドレス
- 21. Android通知がキャンセルされたときにコードを実行する
- 22. RESTfulなWCFサービスがPOST操作で「エンドポイントが見つかりません」というエラーを返します
- 23. Retrofit 2/OkHttp:実行中のリクエストをすべてキャンセルします。
- 24. ServiceHost(コンソールアプリケーション)で実行中のWCFサービス
- 25. アクションが現在実行中であることを確認しますか?
- 26. 非同期Webサービス(WCF)要求をキャンセルしても、SQL Serverでクエリの実行がキャンセルされませんか?
- 27. 実行中のサービスを知る方法は完了しましたか?
- 28. アプリの実行中にSMSと通話通知を非表示にすることはできますか?
- 29. ローカル通知ユーザーの操作まで振動します
- 30. 現在実行中のコード行でデバッガを停止する
はまだサービスについて考えてはいけない - あなたは、データベースまたは任意の永続ストアでこれを行うだろうか?削除を一切キャンセルする方法はありますか? –
アイテムはデータベースで1つずつ削除されます。操作を中断して削除されていないアイテムを返すものが必要です。私はあなたの質問に正しく答えることを願っています。ありがとう。 –
本当に必要以上に複雑に聞こえる、本当に。 –