我希望能夠從與ASP.NET網站相同的服務器上運行的控制檯應用程序中清除特定的緩存項。從單獨的控制檯應用程序訪問HttpContext.Current.Application
如果我參考System.Web,然後嘗試System.Web.HttpContext.Current,我總是得到null,這是有道理的。
我試過了這段代碼,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
始終爲空。 任何人有更好的想法如何實現這一目標?
另一種方法如暴露控制檯應用程序可以調用以刪除緩存項的Web服務嗎? – Tuan 2012-07-25 07:38:13
@Tuan你能給我一個關於公開Web服務的示例解決方案,控制檯應用程序可以調用它來移除緩存項目嗎? – NNNN 2012-07-25 07:47:43