我一直在使用我2年前写过的一些库函数。埋藏了几层深,我正在使用这些功能来帮助建立我想要的路径:
System.Web.HttpContext.Current.Request.ApplicationPath System.Web.HttpContext.Current.Server.MapPath
而不是使用它:
HttpRuntime.AppDomainAppPath
System.Web.HttpContext.Current肯定是null,因为没有http上下文。而且,当然,没有例外被抛出,因为我正在诱捕并忽略它们。
你不知道我盯着我的项目花了多少时间,想知道到底出了什么问题!
请原谅我浪费每一个人的时间。这太尴尬!!!
答案 0 :(得分:3)
不鼓励在ASP.NET应用程序中生成线程。我知道它可以在技术上完成,但是你需要考虑很多问题。建议的最佳做法是创建Windows服务以运行后台任务。然后,您的ASP.NET应用程序可以向服务发出请求,该服务在后台处理它们。
更新了参考文献
来自multi threading on asp.net的评论:
关于在ASP.NET站点上使用后台处理的一个警告。 IIS可以在任何给定时刻回收应用程序,并在执行此操作时终止任何正在运行的后台线程。因此无法保证您的线程池线程将成功运行。如果这是一个问题,最好使用Windows服务进行后台处理。
此外,SO用户Mr. Disappointment会详细介绍here,并说:
Windows服务旨在长期运行,如果出现问题,您通常会比您的个人服务更担心。