【发布时间】:2011-04-08 15:36:54
【问题描述】:
我有一个 C# Windows 服务,它为我的服务器应用程序管理一些东西。这不是主应用程序,而是用于控制我的实际应用程序的辅助进程。用户使用 WinForms 应用程序通过 WCF 连接到此应用程序。这一切看起来有点像 IIS 管理器。
我需要此应用程序的数据存储。
目前,我使用单独的 XML 文件,这些文件在启动时加载,在内存中更新并在每次更改时刷新到磁盘。我喜欢这个,因为:
- 出现问题时,我们可以简单地在记事本中编辑 XML 文件;
- 我没有外部依赖项,例如MSSQL 快递;
- 当格式更改时,我不必更新数据库架构。
但是,我发现这并不稳定,并且内存管理非常脆弱。
我应该使用什么而不是过度杀伤(例如 MSSQL express 会)而不失去太多上述优势?
【问题讨论】:
-
其中哪一部分不稳定?你得到什么错误?您遇到了什么样的内存管理问题?
-
您的 XML 文件应该可以满足您的要求。什么是“不稳定”和“脆弱”呢?我希望改进您的 IO,而不是寻找新技术。
-
您是否看过 SQL Server Compact,在您的情况下听起来是个好主意,唯一的缺点是架构更改,但老实说这种情况发生的频率以及更改的复杂程度,也许先看看 EF 代码每次发生变化时更新您的架构(虽然很可能会丢失数据)
-
我在管理不同的文件时遇到了最大的问题。我曾尝试使用单个全局
lock,但这太过分了,转向更细粒度的模型会使应用程序的这一部分过于复杂。 (我觉得我在建一个数据库,这不太好。)