我有一个基于IIS 6.0的C#/ASP.NET网站,使用SQL Server后端。我想在空闲CPU时间内生成一些计算密集型报告(摘要、搜索引擎索引等)。我需要从IIS App Pool内部生成报告,以便它知道正确的配置设置并避免(更难解决的)噩梦般的安全限制。
我可以在AppPool的进程内启动不会占用CPU的线程,以便它可以继续无阻碍地处理请求吗?如果可以,怎么做?需要哪些代码和库?
我想这涉及到ThreadPool和线程优先级,但我找不到关于低优先级线程及其与IIS Web服务器和App Pool的交互的详细介绍。
[EDIT] http://msdn.microsoft.com/en-us/magazine/cc163854.aspx#S7讨论了使用定时器进行此操作,但没有直接说明.NET框架将确保定时器线程是低优先级的。这可能是一种解决方案,但能否保证呢?
[EDIT] 这位先生谈到了重要的异常相关问题:http://flimflan.com/blog/SafelyRunningBackgroundThreadsInASPNET20.aspx [EDIT] 有趣的是,Stack Overflow本身似乎在使用IIS后台线程来完成我的目的:https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/..。在评论中,每个人都说他们(不再使用的)技术很烂,但这个评论对我来说是有道理的...
我可以在AppPool的进程内启动不会占用CPU的线程,以便它可以继续无阻碍地处理请求吗?如果可以,怎么做?需要哪些代码和库?
我想这涉及到ThreadPool和线程优先级,但我找不到关于低优先级线程及其与IIS Web服务器和App Pool的交互的详细介绍。
[EDIT] http://msdn.microsoft.com/en-us/magazine/cc163854.aspx#S7讨论了使用定时器进行此操作,但没有直接说明.NET框架将确保定时器线程是低优先级的。这可能是一种解决方案,但能否保证呢?
[EDIT] 这位先生谈到了重要的异常相关问题:http://flimflan.com/blog/SafelyRunningBackgroundThreadsInASPNET20.aspx [EDIT] 有趣的是,Stack Overflow本身似乎在使用IIS后台线程来完成我的目的:https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/..。在评论中,每个人都说他们(不再使用的)技术很烂,但这个评论对我来说是有道理的...