1

我有一些 WCF 服务目前是自托管的,在一个非常基本的 NT 服务中。我想扩展我的应用程序以添加 WCF 服务的配置、更新以及隔离(我希望每个 WCF 服务都位于其自己的 AppDomain 中)。这些 WCF 服务包含需要定期运行、ping 数据库以及从外部设备获取信息的逻辑,以便在请求进入时数据随时可用。

我正在考虑试用 Windows 激活服务,因为我真的很喜欢托管服务基础架构所提供的配置和隔离。如果我不使用 WAS,我基本上必须自己编写相同的代码。

据我了解,虽然 WAS 并不真正支持在有人实际调用服务上的方法之前运行服务的模型。我在这里读到的文章

MSDN 文章链接

声明“这实质上意味着开箱即用的 WAS 托管并不是真正适合会话或单例服务的东西。它更适合无状态的每次调用服务。”

它确实说“开箱即用”,所以我想知道是否有人使用 WAS 来托管 WCF 服务,该服务的行为更像 NT 服务(独立地启动和停止调用它的方法)。或者任何其他想法都会很棒。我计划自己编写这个基础架构,在自定义 ServiceHost 中托管 WCF 服务,并将它们的执行放在单独的 AppDomain 中,并允许在初始安装后提供这些服务以及更新。但是,如果我不需要,我宁愿不拥有该代码。

谢谢

约书亚

4

1 回答 1

0

如果您想使用 WAS,那么支持您的服务的正确 Singleton 实例将很棘手。

听起来你真正需要做的是创建一个计划任务。您可以从计划任务中每 5 分钟运行一次数据库更新实用程序,而不必为单例而操心。

于 2010-06-17T21:47:31.250 回答