Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储需要在WPF应用程序中加载的Windows服务运行历史记录_C#_Wpf_Logging_.net 4.0_Windows Services - Fatal编程技术网

C# 存储需要在WPF应用程序中加载的Windows服务运行历史记录

C# 存储需要在WPF应用程序中加载的Windows服务运行历史记录,c#,wpf,logging,.net-4.0,windows-services,C#,Wpf,Logging,.net 4.0,Windows Services,我有一个C#.NET 4 Windows服务,需要存储它的运行历史记录(带有日期/时间、统计数据和成功/失败的记录)。通常每天会有一个条目,因此随着时间的推移,运行历史将增长到几百个或几千个,但我不希望增长到数万个。每个条目将有10-15个字段 此运行历史记录需要由运行在与Windows服务相同的计算机上的WPF应用程序读取和显示。这台机器安装了一个新的操作系统,安装了.NET Framework 4,没有安装其他任何东西 哪里是存储运行历史记录的最佳位置和最佳格式,以便快速轻松地将其加载到WP

我有一个C#.NET 4 Windows服务,需要存储它的运行历史记录(带有日期/时间、统计数据和成功/失败的记录)。通常每天会有一个条目,因此随着时间的推移,运行历史将增长到几百个或几千个,但我不希望增长到数万个。每个条目将有10-15个字段

此运行历史记录需要由运行在与Windows服务相同的计算机上的WPF应用程序读取和显示。这台机器安装了一个新的操作系统,安装了.NET Framework 4,没有安装其他任何东西

哪里是存储运行历史记录的最佳位置和最佳格式,以便快速轻松地将其加载到WPF应用程序


我正在考虑一个XML文件,可能绑定到一个网格(我不是WPF专家)。对于这种大小的记录,1个XML文件可以吗?在WPF中加载是否容易?您有更好的建议吗?

XML可以,但就我个人而言,在这种情况下,我会选择SQLCE。易于使用、免费且易于升级到SQL Server Express或Standard,这是您可能需要的机会


XML是这类数据的良好解决方案。但是,除了基本运行事实的XML存储库之外,您可能还需要考虑使用Apache Log4NET,这是一个允许更详细的进程日志记录的项目。你有什么偏好吗?我没有试过NLog,但我用过Log4Net,发现它很可靠。唯一令人尴尬的是,Log4Net的理念是“不干扰您的程序”;这意味着,如果日志配置设置不正确,您将不会收到任何报告,但您的程序仍将运行。这很好,因为您的程序仍在运行;但这很糟糕,因为当有人破坏配置文件时,您将不会得到任何日志。为此,假设我可以在项目中包含SQLCE作为引用,而不需要其他依赖项或安装,并且两个不同的进程可以同时读/写它?对SQLLite还有什么意见吗?SQLLite也很不错——它是封装的,性能很好。但是,如果我必须在多台机器之间共享数据库,我就不会使用它。XML的优点是几乎任何程序都可以打开它,而且XML合并非常容易。因此,假设您在多台机器上运行该程序,您可以在任何地方提取和存放XML文件。