在控制台应用程序中访问HttpRUntime.Cache

时间:2016-08-22 15:20:34

标签: c# asp.net caching httpruntime.cache

我有一个控制台应用,需要动态加载我的API应用中的所有端点,并获取缓存数据的详细信息。

    foreach (var routeTemplate in listRouteTempplates)
    {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/appName/" + routeTemplate );
                    WebResponse response = null;
                    Stream dataStream = null;
                    request.Method = HttpMethod.Get.ToString();

                    response = request.GetResponse();
                    dataStream = response.GetResponseStream();
                    StreamReader reader = new StreamReader(dataStream);
                    responseFromServer = reader.ReadToEnd();
                    reader.Close();
                    dataStream.Close();
                    response.Close();

                    var count=HttpRuntime.Cache.Count;
    }

调用每个端点时,还会缓存检索到的数据。我通过直接调用端点(通过postman)并检查缓存来确认。

但是在控制台应用程序中,即使响应确实有正确的数据,HttpRuntime.Cache中的项目数也始终为零。

当我在控制台应用程序中调用端点时,是否存在缓存数据的原因?

由于

1 个答案:

答案 0 :(得分:4)

存储项目的缓存位于Web API主机内的服务器上。通常,您在客户端控制台应用程序中检查的缓存实例中没有任何项目 - 这些是2个完全不同的对象实例,它们位于2个不同的应用程序中。