我们有一个 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 任务计划程序中运行一次。
不是问题的解决方案,但它解决了我的情况。
关于c# - (C#) Windows 服务中的 ReportViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47454809/