我有一个网络应用程序,每隔一段时间(例如10分钟)将数据写入文件。
我有另一个控制台应用程序,它可以读取文件并对数据执行某些操作。
问题是:在控制台应用程序尝试复制文件时,Web应用程序正在使用该文件。这导致错误,锁定错误。
我有两个问题,如何强制文件从另一个程序关闭,而不是在同一台机器上?
与网络应用程序相关的其他问题,比如说,有一段时间没有请求到服务器,文件永远不会关闭。我怎样才能确保在一段时间后文件被关闭?后台计时器线程?
编辑:操作系统是Windows 2003服务器。
有什么建议吗?
答案 0 :(得分:0)
如果您的程序“对数据执行某些操作”实际上并未修改该文件,则可以将其以只读方式打开,并避免整个锁定情况。你需要写访问权吗?
您可以通过编写会话计数功能来跟踪会话。当会话数达到零时,您可以关闭文件。如果您向我们提供了有关您正在尝试做什么的更多信息,那将会很有帮助,因此我们知道该计划的流程。
使用Session_Start和Session_OnEnd来跟踪会话。这篇site有关于如何跟踪会话的好文章。