我System.Timers.Timer
在我的Asp.Net应用程序中使用a ,我需要使用HttpServerUtility.MapPath
似乎只能通过的方法HttpContext.Current.Server.MapPath
.问题是,HttpContext.Current
是null
的,当Timer.Elapsed
事件触发.
是否有另一种方法来获取对HttpServerUtility对象的引用?我可以在我的类'构造函数中注入它.安全吗?如何确保在当前请求结束时不会收集垃圾?
谢谢!
有没有办法确定在运行时运行的应用程序是WinForms还是Web?
[编辑]
如果我在我的类库中引用它们System.Web
,实际上是否存在问题System.Windows.Forms
?
[摘要](到目前为止)
到目前为止我学到了什么:
HttpContext.Current
是null
如果检查在异步线程,因此它不能可靠地在一个辅助方法使用.HttpRuntime.Cache
并没有真正的帮助,因为我根本没有寻找缓存的上下文(或者我在这里错过了什么?).System.Reflection.Assembly.GetEntryAssembly()
似乎null
在Web应用程序中返回,而在WinForms中则为null.这应该被视为理所当然吗?应该有更多这样的"黑客",那么使用哪一个?System.Web
和System.Windows.Forms
在一个帮助库中应该没问题.我需要一个调用webmethod的控制台应用程序.
它必须是异步的,没有超时(我们不知道这个方法需要花多少时间来处理任务.
这是好方法:
[WebMethod]
[SoapDocumentMethod(OneWay = true)]
Run Code Online (Sandbox Code Playgroud)
??