在Web服务调用之间共享对象实例

Eri*_* J. 6 .net web-services asmx

我有一个具有相对较高的初始化成本的对象,它提供了处理Web服务请求所需的线程安全计算方法.

我正在寻找在请求之间保持初始化实例可用的最佳方法.

一种方法是将其声明为静态变量.然后它将一直可用,直到AppDomain被回收.

这是一个不使用WCF的旧Web服务,但转换是一个选项,如果这将提供更好的解决方案.

有更好的方法吗?

Kel*_*tex 2

将对象缓存在 中怎么样HttpRuntime.Cache

MyObject val = (MyObject)HttpRuntime.Cache["MyCacheKey"];
if (val == null)
{
    val = // create your expensive object here
    HttpRuntime.Cache.Insert("MyCacheKey", val, null, 
      DateTime.Now.AddSeconds(3600), 
      System.Web.Caching.Cache.NoSlidingExpiration);
}
Run Code Online (Sandbox Code Playgroud)

在这里,我将其在缓存中保留最多一个小时,但您可以根据需要更改此设置。