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 任务计划程序中创建一个控制台应用程序和 运行 一个批处理文件 运行 它。
不是问题的解决方案,但它解决了我的情况。
我们有一个 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 任务计划程序中创建一个控制台应用程序和 运行 一个批处理文件 运行 它。
不是问题的解决方案,但它解决了我的情况。