对每个会话的服务修改
Service modification to per-session
我有一个系统,其中已经为特定进程设置的服务曾经有一个单一的实例模式。该服务用于 运行 一个只能为一个客户服务的漫长过程。架构如下:
现在我正在尝试为每个会话创建此 wcf 服务,以便它可以 运行 同时为两个或多个客户端进行长时间操作。因为这个过程通常需要时间。我还使用回调通道将完成百分比发送回客户端。架构如下所示:
两种架构的主要区别在于:
- 以前只有一个用户可以 运行 处理多个
objects.Now 每个用户都可以 运行 漫长的过程,但因人而异
对象。
- 我们在新架构中添加了回调功能
每个会话服务。
我们还计划为用户提供便利
终止进程,如果他愿意或客户端连接是
已关闭。
但是在努力实现上述目标的同时,我们面临着以下问题。
- 耗时较长的操作,发生在数据库中借助多个存储过程,从static数据管理器class.[=43=中一一调用]
- 每个 SP 负责在多个表中添加大约 50 万行。
- 虽然从客户端终止连接会删除服务实例,但由于数据库操作是在静态 class 中完成的,因此控件会卡在那里,一切都停止响应。
- 我知道有一个 DBCommand.Cancel() 方法可以停止与 DBCommand 关联的操作,但是由于 class 是静态取消,所以也是不可能的。
请提出解决此问题所需的体系结构更改。我准备分享更多细节。
据我了解,您希望同时有多个客户端,并且 static
行为导致 singleton
不匹配。
我会更正。
此致
我有一个系统,其中已经为特定进程设置的服务曾经有一个单一的实例模式。该服务用于 运行 一个只能为一个客户服务的漫长过程。架构如下:
现在我正在尝试为每个会话创建此 wcf 服务,以便它可以 运行 同时为两个或多个客户端进行长时间操作。因为这个过程通常需要时间。我还使用回调通道将完成百分比发送回客户端。架构如下所示:
两种架构的主要区别在于:
- 以前只有一个用户可以 运行 处理多个 objects.Now 每个用户都可以 运行 漫长的过程,但因人而异 对象。
- 我们在新架构中添加了回调功能 每个会话服务。
我们还计划为用户提供便利 终止进程,如果他愿意或客户端连接是 已关闭。
但是在努力实现上述目标的同时,我们面临着以下问题。
- 耗时较长的操作,发生在数据库中借助多个存储过程,从static数据管理器class.[=43=中一一调用]
- 每个 SP 负责在多个表中添加大约 50 万行。
- 虽然从客户端终止连接会删除服务实例,但由于数据库操作是在静态 class 中完成的,因此控件会卡在那里,一切都停止响应。
- 我知道有一个 DBCommand.Cancel() 方法可以停止与 DBCommand 关联的操作,但是由于 class 是静态取消,所以也是不可能的。
请提出解决此问题所需的体系结构更改。我准备分享更多细节。
据我了解,您希望同时有多个客户端,并且 static
行为导致 singleton
不匹配。
我会更正。
此致