在站点关闭时防止打开文件锁定

时间:2017-09-12 15:36:26

标签: c# windows multithreading iis

文件由线程打开以进行写入。对文件的引用是方法中的局部变量,因此无法通过dispose或终结器进行清理。

代码使用using语句来确保文件已关闭,并且在正常操作期间释放所有锁定。但是,在关闭站点的情况下,using语句可能无法清除FileStream。但是,IIS进程可能保持打开状态,因此除非重新启动服务器,否则不会释放锁。

如果站点停止或重新启动,防止文件锁挂起的最佳方法是什么?

或者IIS关闭网站的方式是否可以减轻这种担忧?

1 个答案:

答案 0 :(得分:-1)

尽可能减少资源锁定是一个很好的原则,并且您看到了不这样做的一个后果。我建议您只在实际需要写入文件时打开并锁定文件,然后释放锁定并立即关闭文件。如果您担心重复打开文件(并寻求结束追加)的性能开销,那么您应该分析代码以查看性能是否可接受。