【发布时间】:2009-03-16 16:12:23
【问题描述】:
我需要将一些 xml 从 web 服务缓存到本地 xml 文件以供我的 web 应用程序使用。
有两种 Web 服务,一种返回数据,另一种返回数据上次更改的日期/时间。
xml 文件大小范围为 50KB 到 500KB
我目前有一个从执行以下操作的 Windows 调度程序运行的可执行文件。
- 检查上次从 WebService 更改的 DateTime
- 检查 DateTime 本地 xml 文件上次修改时间
- 比较日期以确定是否继续
- 从 web 服务拉取数据到本地字符串
- 将数据写入本地文件 myxml.temp
- 将现有的实时文件 myxml.xml 重命名为 myxml.delete
- 将 myxml.temp 文件重命名为 myxml.xml
- 删除 myxml.delete 文件
我使用 FileInfo.CreateText() 和 TextWriter 执行初始写入。
我使用 FileInfo.MoveTo 和 FileInfo.Delete 执行重命名和删除。
这是相当可靠的,因为重命名很快,但是,由于文件仍在使用中,我们仍然会收到一些拒绝访问错误。
有人对更可靠/更有弹性的方法有任何建议吗?在管理这样的本地文件时,是否有任何我可能忽略的内置内容?
【问题讨论】:
标签: c# web-services caching file-io