我有一个控制台应用,需要动态加载我的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中的项目数也始终为零。
当我在控制台应用程序中调用端点时,是否存在缓存数据的原因?
由于
答案 0 :(得分:4)
存储项目的缓存位于Web API主机内的服务器上。通常,您在客户端控制台应用程序中检查的缓存实例中没有任何项目 - 这些是2个完全不同的对象实例,它们位于2个不同的应用程序中。