Windows 激活服务中的单例模式
Posted
技术标签:
【中文标题】Windows 激活服务中的单例模式【英文标题】:singleton pattern in Windows Activation Service 【发布时间】:2010-12-25 07:52:47 【问题描述】:我有一些 WCF 服务目前是自托管的,在一个非常基本的 NT 服务中。我想扩展我的应用程序以添加 WCF 服务的配置、更新以及隔离(我希望每个 WCF 服务都位于其自己的 AppDomain 中)。这些 WCF 服务包含需要定期运行、ping 数据库以及从外部设备获取信息的逻辑,以便在收到请求时随时可以使用数据。
我正在考虑试用 Windows 激活服务,因为我非常喜欢托管服务基础架构所提供的配置和隔离。如果我不使用 WAS,我基本上必须自己编写相同的代码。
据我了解,虽然 WAS 并不真正支持在有人实际调用服务上的方法之前让服务运行的模型。我在这里读到的文章
MSDN Article Link
声明“这实际上意味着开箱即用的 WAS 托管并不是真正适合会话或单例服务的东西。它更适合无状态的每次调用服务。”
它确实说“开箱即用”,所以我想知道是否有人使用 WAS 来托管 WCF 服务,该服务的行为更像 NT 服务(独立启动和停止调用它的方法)。 或者任何其他想法都会很棒。我计划自己编写这个基础架构,在自定义 ServiceHost 中托管 WCF 服务,并将它们的执行放在单独的 AppDomain 中,并允许在初始安装后提供这些服务以及更新。但是,如果我不需要,我宁愿不拥有该代码。
谢谢
约书亚
【问题讨论】:
【参考方案1】:如果您想使用 WAS,支持服务的正确 Singleton 实例将很棘手。
听起来你真正需要做的是创建一个计划任务。您可以从计划任务中每 5 分钟运行一次数据库更新实用程序,而不必为单例而操心。
【讨论】:
以上是关于Windows 激活服务中的单例模式的主要内容,如果未能解决你的问题,请参考以下文章