|
|
1
1
我不知道静态变量和AppPool重置有什么奇怪之处。由于我们处理的是一个静态对象,因此在服务请求之前,可以保证线程安全初始化。 我认为这里最重要的问题是:“您的服务会处理多个同时请求吗?”。换句话说 ConcurrencyMode 您的服务设置?默认值为Single,这意味着您的服务一次只能服务一个请求。在这种情况下,我们不必担心单例对象的线程安全性。 如果ConcurrencyMode==Multiple,则可以通过多个同时请求访问单例对象。在这种情况下,您必须确保单例对象是 thread safe 下面的代码在大批量生产系统中很好地为我服务。请注意,由于SearchManager类是线程安全的,因此已指定ConcurrencyMode.Multiple。我确信这种设置可以改进。
此代码还指定了InstanceContextMode.PerCall,这意味着每个请求都使用服务的新实例进行服务 |