我希望能够从与 ASP.NET 网站在同一台服务器上运行的控制台应用程序中清除特定的缓存项。
如果我引用 System.Web 然后尝试 System.Web.HttpContext.Current 我总是得到空值,这是有道理的。
我尝试了这段代码并且 System.Web.HttpContext.Current 变得不为空。
代码:
HttpContext.Current = new HttpContext(
new HttpRequest("", "http://tempuri.org", ""),
new HttpResponse(new StringWriter())
);
// User is logged in
HttpContext.Current.User = new GenericPrincipal(
new GenericIdentity("username"),
new string[0]
);
// User is logged out
HttpContext.Current.User = new GenericPrincipal(
new GenericIdentity(String.Empty),
new string[0]
);
但是 HttpContext.Current.Application 不能使用。我试试这个:
..
HttpContext.Current.Application.Add("TestValue", 1);
..
object objReturn = HttpContext.Current.Application.Get("TestValue");
if(objReturn==null)
Console.WriteLine("objReturn is null");
else
Console.WriteLine(objReturn);
我的问题是变量objReturn
始终为空。还有其他人对如何实现这一目标有更好的想法吗?