ljy274476846 2014-12-17 02:10 采纳率: 0%
浏览 3301

C#缓存绝对过期时间失效

我的代码如下 求高手哇哇
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Caching;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
public partial class index : System.Web.UI.Page
{
protected string strError = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
strFileError("刷新时间:" + DateTime.Now.ToString("hh:mm:ss"), true);
CacheItemUpdateCallback onUpdate = new CacheItemUpdateCallback(UpdataCallback);
//30秒后就到期,立即移除
HttpRuntime.Cache.Insert("DD", "绝对过期测试", null, DateTime.Now.AddSeconds(5), System.Web.Caching.Cache.NoSlidingExpiration, onUpdate);
}

    //缓存回调函数
    private static void UpdataCallback(string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration)
    {
        try
        {
            strFileError("调用时间:" + DateTime.Now.ToString("hh:mm:ss"), false);
            expensiveObject = DateTime.Now.ToString();
        }
        catch (Exception)
        {
            expensiveObject = DateTime.Now.ToString();
        }
        dependency = null;
        absoluteExpiration = DateTime.UtcNow.AddSeconds(5);
        slidingExpiration = Cache.NoSlidingExpiration;

    }

    public static void strFileError(string ss, bool isFirst = false) {
        StreamWriter sr = null;
        string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "File");
        if (!Directory.Exists(filePath)) {
            Directory.CreateDirectory(filePath);
        }
        string fullName = filePath + "/error.text";
        if(isFirst){
            sr = File.CreateText(fullName);
        }else
        {
            sr = File.AppendText(fullName);
        }
        if(isFirst){
            sr.WriteLine("开始记录:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        }else
        {
            sr.WriteLine(ss);
        }
        sr.Close();
    }
}

}

  • 写回答

2条回答

  • ljy274476846 2014-12-17 02:11
    关注

    这里 我发现需要过20S UpdataCallback回调函数才会被调用 请问 是什么原因导致的 是不是我代码写的有问题

    评论

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)