我在想一种允许多个用户在asp.net应用程序中获得对XML文档的CRUD访问权限的方法。显然,这些操作必须在多线程环境的假设下进行。
出于性能原因,缓存文档是否有意义,并在缓存版本上使用互斥锁?何时将更改刷新到物理XML文档?
赞赏任何和所有建议(不幸的是,此时“使用数据库”也不是一个选项)
答案 0 :(得分:0)
缓存XML文档当然是有意义的,因此您无需为每个用户/请求从磁盘读取它。您应该同步对它的访问。一个好主意是将访问封装在一个类中,并使用ReaderWriterLockSlim进行同步。读取数据时,获取读锁定并从内存中读取。写入时,获取写锁定,写入数据并替换内存中的副本。
答案 1 :(得分:0)
您可以在每次事务后将数据库对象的缓存版本序列化到磁盘(作为二进制文件),并且只在一定时间间隔内写入XML。