文件由线程打开以进行写入。对文件的引用是方法中的局部变量,因此无法通过dispose或终结器进行清理。
代码使用using
语句来确保文件已关闭,并且在正常操作期间释放所有锁定。但是,在关闭站点的情况下,using
语句可能无法清除FileStream
。但是,IIS进程可能保持打开状态,因此除非重新启动服务器,否则不会释放锁。
如果站点停止或重新启动,防止文件锁挂起的最佳方法是什么?
或者IIS关闭网站的方式是否可以减轻这种担忧?
答案 0 :(得分:-1)
尽可能减少资源锁定是一个很好的原则,并且您看到了不这样做的一个后果。我建议您只在实际需要写入文件时打开并锁定文件,然后释放锁定并立即关闭文件。如果您担心重复打开文件(并寻求结束追加)的性能开销,那么您应该分析代码以查看性能是否可接受。