Windows 服务中的 (C#) ReportViewer

(C#) ReportViewer in Windows Service

我们有一个 WPF 项目 使用 ReportViewer (2010) 创建了一些报告(总共 22 个),所有这些报告都超过 100 页并且布局非常复杂。现在我们需要一个 Windows 服务来每天自动创建这些报告。

我创建了服务,使用完全相同的逻辑,创建了安装程序并构建了它,但是,当我执行时,该服务只保存了 14 个报告,它抛出了这个异常:

Win32Exception: Error creating window handle

(我的 VS 是葡萄牙语,这是给你们的翻译:)

我注意到进程的 RAM 使用量急剧上升,调用异常时达到 570MB。

我认为这可能是创建报告的逻辑有问题,所以我创建了一个控制台应用程序项目来调用该方法,它工作得很好。

我的疑惑是:

1) 是否有可能限制服务的 RAM 使用,是否有必要在每次保存报告后清除内存? (如果是,我该如何清除内存?我包含了调用 GC.Collec(); 但未成功)

2) ReportViewer(Windows.Form 组件)是否可能与 Windows 服务组件中的某些内容发生冲突导致错误?

向大家致以最诚挚的问候

为了满足我的需求,我决定每天在 Windonws 任务计划程序中创建一个控制台应用程序和 运行 一个批处理文件 运行 它。

不是问题的解决方案,但它解决了我的情况。