在我的3.5 .net web应用程序中,我有一个后台线程来处理大量的工作(该应用程序类似于mint.com,因为它在后台线程上执行大量的账户聚合)。我在执行聚合的线程中进行了广泛的异常处理,但仍有可能抛出未处理的异常,导致整个应用程序崩溃。我读了一些关于这个主题的文章,但它们都似乎过时了,没有实现标准的方法。现在是否有标准方法来解决这个问题?在ASP.NET 4.0中是否有更好的处理方式?
你可以在你的工作线程周围放置一个try/catch块,就像在线程启动时一样。我假设这已经是你正在做的事情,或者类似于此。但请记住,你绝对不想将未知错误转化为无声的未知错误,因为这样当出现问题时,它将会更加难以追踪。确保你将异常记录到EventLog或自定义应用程序日志中,如果你只想捕获它并忘记它。
就像Aaronaught所说,当发生意外情况时,应用程序应该崩溃。但我认为,让你的后台线程退出/死亡而不是关闭整个应用程序进程没有问题(实际上,我认为Aaron在这里是不正确的,它不会杀死整个进程)。我认为你的问题基本上可以翻译为“ASP.NET中是否有什么神奇的东西可以突然解决我甚至不知道的问题?”当然,答案是否定的。但你已经知道了。:)