我需要非常简单的文本文件记录。我只会追加线条。从不改变现有的或删除它们。如果它是XML文件,绑定到网格以查看它们会更容易。但文本文件和xml文件仍然存在问题,因为它们在文件系统中。在线程安全的aspnet中记录XML或文本文件
在web服务器中会附加日志条目时出现文件锁定。也可能在阅读时所以这个方法必须是线程安全的。同时,多个实例可以将日期写入文件。
我知道有一些第三方工具,如serilog等,但我想知道:
我怎么可以追加(不改变)线不用注意文件锁定到文本文件(或XML文件)?
如果我读取XML文件到数据集,添加一个新的行并保存为XML我会使用其他实例所做的其他条目。
如果我用streamwriter打开一个文本文件并向它附加一行,其他实例将会出现锁定错误。
我再次从管理面板获取日志列表,文件将被锁定,实例不会追加日志。
什么想法?
*无关于文件锁*你不能。绝对不能。不。不可以。您可以做的是创建一个在后台运行的单个线程,该线程从集合中获取项目并将其写入磁盘,并以读/写方式锁定对该集合的访问。或者只是使用诸如NLog之类的多线程安全日志框架之一。 – Will 2014-10-05 16:30:23