当前位置: 代码迷 >> Web Service >> webservice常驻内存,该怎么解决
  详细解决方案

webservice常驻内存,该怎么解决

热度:445   发布时间:2013-01-27 13:56:17.0
webservice常驻内存
问题:当客户端第一次执行webservice的某个方法,会返回一个随机加密键值(string)。以后客户端想访问webservice的其他方法,都需要这个加密键值做匹配,成功才能执行,原来是将这个加密键值放入外部XML文件,可是发现效率低,有无其他方法解决这个问题?比如常驻内存变量等?
其他效率高的方法也行,当很多人很多次访问webservice,外部XML文件效率极低,每次都需要去循环匹配。
------解决方案--------------------
比如说这个xml文件的路径是保存在path路径中,你可以这样返回这个xml文件的内容:
private ABC 查询授权码(string path, string code)
{
    var cache = HttpRuntime.Cache;
    var result = (ABC)cache[code];
    if (result == null)
    {
        result = 查询xml文件找到对应的授权记录(code);
        cache.Insert(code, result, new CacheDependency(path));
    }
    return result;
}

这里,ABC是任何一个可以与授权号(随机加密键值)所对应的数据类型,甚至可以简单到一个string。

比如说你可以在xml文件中让每一个授权号对应一个病人的病历编号(通过这个病历编号可以进一步查询数据库来返回病历,或者这个xml里边保存的就是病历本身也可以),然后这个方法可以通过code授权号查询到此人的病历。
  相关解决方案