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

标签 .net web-services asmx

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

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

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

这是一个较旧的 Web 服务,不使用 WCF,但如果转换会提供更好的解决方案,则可以选择转换。

有没有更好的方法?

最佳答案

缓存 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);
}

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

关于.net - 在 Web 服务调用之间共享对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322656/

相关文章:

.net - RestSharp 序列化为 JSON,对象未按预期使用 SerializeAs 属性

c# - 当我在两个连续的语句中读/写它时,我需要锁定一个 bool 值吗?

web-services - 在哪里可以找到 cxf/cxf.xml、cxf-extension-soap.xml、cxf-servlet.xml

c# - 如何将依赖项注入(inject) asmx webservice webmethod?

xml - ASP.NET JSON Web 服务总是返回用 XML 包装的 JSON 响应

.net - 在 .NET 开发中,WinForms/桌面开发人员与 ASP.NET 开发人员的区别是什么?

java - Android 使用 WebService,异常 HttpTransportSE.call()

web-services - Sitefinity - 如何使用 Odata 按相关数据字段过滤新闻?

vb.net - 使用 jQuery Post 从 .ashx 获取文件

c# - 如何从不良词中过滤出richtextbox?