ASP.NET Web 服务中单例的行为是什么?

What is the Behavior of a Singleton in ASP.NET Web Services?

我想创建一个日志记录组件,通过专有的 API 将我的 Web 服务层中的错误记录到数据库中。 Web 服务层可以分布在多个应用程序服务器上。我相信日志记录组件应该是一个单例。

我的 Web 服务层是用 ASP.NET 编写的。我的日志记录组件是通过 System.ComponentModel (a.k.a.MEF).

动态加载的

当我获取单例实例时可能会发生什么?我是否在每个应用程序服务器上获得一个单独的日志记录 Singleton 实例?

是的,您将在每台服务器上拥有不同的实例。单例模式保证您在给定的应用程序域中只有一个实例,并且每个服务器都有自己的实例。

是。

在您的情况下,您的服务器上的每个应用程序实例 运行 将拥有一个日志记录组件实例。

前提是您已通过 MEF 正确配置组件。