ASP.NET Web サイトと同じサーバーで実行されているコンソール アプリケーションから特定のキャッシュ アイテムをクリアできるようにしたいと考えています。
System.Web を参照してから System.Web.HttpContext.Current を試すと、常に null が返されます。これは理にかなっています。
このコードで試してみたところ、System.Web.HttpContext.Current が null ではなくなりました。
コード:
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
が常に null であることです。これを達成する方法について他の誰かがより良いアイデアを持っていますか?