c# - (C#) Windows 服务中的 ReportViewer

标签 c# wpf windows-services reportviewer

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

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

Win32Exception: Error creating window handle

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/

相关文章:

c# - 如何将 StackPanel 绑定(bind)到非 ObservableCollection?

windows - 使用 Puppet 启动和停止服务

c# - 如何删除应用程序中启动的所有线程?

c# - 从 .net 核心使用 ServiceStack Redis 并连接到 Sentinel 设置

c# - 测试项目test不会执行: unrecognized configuration section entityFramework

c# - Entity Framework ——并发使用容器

wpf - 如何使用 powershell 将 SQL 数据导入 WPF DataGrid?

c# - 这是以编程方式在 2 个数据库之间同步数据的唯一且好的方法吗

c++ - C++ Windows 服务是否比 .Net Windows 服务更稳定?

c# - 从浏览器中通过 ID 获取元素并显示在标签中