首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存web服务结果

缓存web服务结果
EN

Stack Overflow用户
提问于 2015-03-24 16:05:00
回答 1查看 1.5K关注 0票数 0

我有一个长期运行的web服务(3-5分钟),它返回一个大型自定义对象。

我宣布这样的网络方法..。

代码语言:javascript
复制
public class MyService : System.Web.Services.WebService
{
    [WebMethod(CacheDuration=86400)]
    [XmlInclude(typeof(MyObject))]
    public MyObject Items(string myParam)
    {
        return new MyObject(myParam);            
    }
}

然后,我在一个经典的ASP.NET 4.0应用程序中使用该服务,并缓存如下“项”的元素.

代码语言:javascript
复制
protected MyService.MyObject servObj = new MyService.MyObject();
protected void Page_Load(object sender, EventArgs e) 
{  
    if (!Page.IsPostBack) 
    {
        if (Cache["elems1"] == null) 
        {
            MyObject items = servObj.Items("myParam");
            Cache.Insert("elems1", servObj.elems1, null, DateTime.MaxValue, TimeSpan.FromHours(24));
            Cache.Insert("elems2", servObj.elems2, null, DateTime.MaxValue, TimeSpan.FromHours(24));
        }
    }
}

当我运行应用程序时,似乎web服务缓存有时是可用的,有时是不可用的,也就是说,它不会持续指定的持续时间。web服务在IIS上自己的应用程序池中运行。

知道为什么吗?有更明智的方法来缓存web服务结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 01:00:28

原来Cache.Insert(...)在Page类中。它需要是Context.Cache.Insert才能在应用程序缓存中。哈!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29237476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档