我在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