【发布时间】:2011-09-08 19:16:03
【问题描述】:
我的任务是为现有(会话完整)服务编写 WCF 服务主机(服务器)——到目前为止并不难。该服务是一个 ADO 代理服务器,它将 ADO 连接代理到各种后端数据库。这在大多数情况下效果很好,但我需要支持的 ADO .NET 数据提供程序之一是作为连接到非线程安全的非托管代码 (C) API 的驱动程序实现的。
优选的解决方案,使代码线程安全或实现线程安全的托管驱动程序目前已不在讨论范围内。有人建议我可以将多个进程作为一种后端或二级代理来运行,但是当我第一次听到它时,这让我觉得实现它是一场噩梦,在我进行试验实现时更是如此。
我的问题是,我在这里缺少另一个解决方案吗?到目前为止,我一直在使用 ConncurrencyMode.Single 和 UseSynchronization = true,但问题的真正核心是会话和非线程安全的后端。到目前为止还没有运气。我是否坚持代理与多个进程的连接,还是其他人可以提出更优雅的解决方案?
谢谢!
【问题讨论】:
标签: multithreading wcf multiprocessing