通知WCF服务取消当前正在执行的操作并返回剩余数据。

时间:2011-07-29 02:37:05

标签: wcf asynchronous-wcf-call

我有这个客户端应用程序,它将数千个要删除的项目发送到我的wcf服务。由于数据是批量发送的,即使我取消操作(带进度条),也会删除所有项目。我想要的行为是能够取消服务中的删除操作并检索未删除的项目。谢谢。

1 个答案:

答案 0 :(得分:0)

您使用的InstanceContextMode是什么?

您想要做的是使用InstanceContextMode Singleton或Session,而不是PerCall。

我认为您在批量操作中启动删除的方法是OneWay。

在您的服务中创建一个bool字段(最初为false)。您逐个删除记录的循环会检查该标志,并在标志为真时停止。

在您的服务中创建另一个方法,将该字段设置为true。按“取消删除”按钮时,从您的网站调用新方法。删除记录的looop将会中断。

返回未删除的记录将会有点棘手。要删除的记录列表也需要是服务类的名称,因此停止删除的方法也可以访问列表。从db shoulkd删除的方法也会逐一删除列表中的记录,以便您可以跟踪剩余的项目。

您可以在列表的第二种方法中立即返回,但是thia不保证准确的结果。我要做的是在返回之前等待200毫秒。这样您就知道从列表中删除的项目确实已在数据库中删除。

希望这很清楚......