【问题标题】:Singletons in web- or WCF-servicesWeb 或 WCF 服务中的单例
【发布时间】:2010-07-25 18:55:29
【问题描述】:

有一段时间我想知道在编写 Web(或 WCF)服务时将一些数据存储在单例中是否是个好主意。目标是在服务的不同调用中重用此信息。 我想知道这些单例的生命周期是多少,因为例如当应用程序池被回收时,单例就消失了。 下一个问题是单例的可用性。它真的在所有调用中都可用,独立于 IIS 启动的进程或线程吗?

你怎么看?

谢谢,罗科

【问题讨论】:

    标签: wcf web-services singleton


    【解决方案1】:

    单例的生命周期等于或低于应用程序的生命周期(如果它是延迟加载的)。当应用程序池回收时,应用程序停止并且用于存储单例的内存被操作系统回收。

    单例将在应用程序的所有线程中可用,但由于它存储在运行此应用程序的进程的内存空间中,因此对其他进程不可用。

    要回答您的问题,在 WCF 中使用单例模式存储数据是否是一个好主意,这完全取决于您的方案、您想要存储的内容以及您希望它在哪里可用。 WCF 提供了许多扩展点,可以让您避免使用静态方法。

    单例的一个缺点是它们很难进行单元测试,所以我通常会尽可能避免使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多