我在Asp.Net应用程序中使用System.Timers.Timer
,我需要使用HttpServerUtility.MapPath
方法,似乎只有通过HttpContext.Current.Server.MapPath
可用。 问题是HttpContext.Current
是null
当Timer.Elapsed
事件触发。如何访问Thread或Timer中的HttpServerUtility.MapPath方法?
是否有另一种方式来获得一个HttpServerUtility对象的引用? 我可以在我的类的构造函数中注入它。它安全吗?我如何确定它不会在当前请求结束时收集垃圾?
谢谢!
但是,请注意上述不适用于更高版本的IIS。在IIS7中,应用程序启动可能在http请求之外被调用。也就是代码示例。我确信HostingEnvironment.MapPath()仍然像以前一样工作。 – Robba 2010-10-25 13:44:58
但HostingEnvironment.MapPath()给出错误,如果你传递它并且为了直接获得文件夹路径而使用空字符串... HttpContext.Current.Server.MapPath(“”); - > works HostingEnvironment.MapPath(“”); - >引发错误 – VSP 2012-03-02 10:11:55