Microsoft 的建议是将内部 .net IIS 垃圾收集过程的清理任务增加到 48 小时。
OP 提出了一个更长期的解决方法,我们将考虑,但在此期间,任何人都可以建议如何去做微软的建议吗?
Microsoft 的建议是将内部 .net IIS 垃圾收集过程的清理任务增加到 48 小时。
OP 提出了一个更长期的解决方法,我们将考虑,但在此期间,任何人都可以建议如何去做微软的建议吗?
我怀疑您已经知道其中的一些,但无论如何我都将其包括在内以尝试更完整。
在您链接到的线程中,听起来原始海报可能会将垃圾收集(释放不再需要分配的 CLR 内存)与应用程序域回收(重新启动整个 CLR 应用程序域)混淆。
回收由 SSRS 设置控制RecycleTime
,默认为 12 小时,而垃圾收集会连续运行以及应用程序编码为 call 时运行GC.Collect()
。
我所知道的与 GC 相关的唯一 SSRS 设置是ProcessTimeoutGcExtension
,如果它在 GC 期间无响应超过ProcessTimeoutGcExtension
几秒钟,它会导致进程崩溃转储并停止。SSRS 2008 R2 的 Reporting Services 服务默认设置为在失败时自动重新启动,因此如果由于ProcessTimeoutGcExtension
.
默认情况下,这两个设置都位于 Reporting Services 配置文件中C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config
。
线程中的错误消息似乎与垃圾收集或回收无关,所以我不确定这是否真的有助于解决原始问题。
顺便说一句,从 SQL Server 2008 开始,SSRS 不再使用 IIS,尽管它使用与 IIS 相同的驱动程序 (http.sys) 来管理连接。