我正在创建一个控制台应用程序,它需要调用严重依赖于HttpContext的方法。我可以模拟基本的HttpContext以及身份验证,但是我无法设置HttpContext.Current.Application。是否有可能在其中设置数据?
这里有很多关于同一主题的问题,但无法从两者中得到解决方案,因此最终在这里发布了另一个。
我的目标是让这个工作。
HttpContext.Current.Application("PageDefinitionCache") = pageDefinitions
有什么建议吗?
答案 0 :(得分:2)
缓存位于ASP.NET辅助进程内部,您无法直接从控制台应用程序访问它。 HttpContext.Current
为null
,因为您未在控制台应用程序中使用aspx.net工作进程。
考虑在控制台应用程序中声明一个全局变量来模拟HttpContext.Current.Application
的行为。
答案 1 :(得分:0)
您无法在控制台应用程序中使用HttpContext。 正如@matrxRapture所提到的,您可以使用全局变量解决此问题,如果您要查找应用程序的当前目录路径,可以使用 Assembly.GetExecutingAssembly()。位置