我有一个包含JSON格式的缓存数据的文本文件。我正在尝试更新该文件,但我的IIS工作进程正在锁定该文件,当我尝试写入它时,我收到错误“进程无法访问该文件,因为它被另一个进程使用”。我在Google和Stack上搜索了答案,但我似乎无法找到与IIS锁定文件相关的任何内容。该文本文件包含在我的Visual Studio解决方案中,我在本地计算机上使用IIS来托管我的网站。对于我的第一个问题,我想知道如何让IIS释放文件或根本不锁定它。对于第二个问题,我想知道是否有一种不同的方法来阻止IIS锁定我的文件。
答案 0 :(得分:7)
IIS未锁定您的文件。 IIS不知道您的文件存在。某些应用程序(可能是您自己的应用程序)正在锁定该文件。
尝试使用procmon中的SysInternals等程序来确定锁定文件的进程。
答案 1 :(得分:6)
午休后,我意识到工作进程挂在文本文件上,因为它正在从中读取一行,然后尝试写入它。我将文件包装在using语句中,并在读取后移动写入,现在它正在工作。
答案 2 :(得分:0)
当尝试发布.NET Core API应用程序时,我遇到了类似的问题(由IIS工作进程锁定的文件)。
以防万一,我的问题是由一个相关应用程序引起的,该应用程序正在调用API,并且在尝试发布API时处于调试模式。
答案 3 :(得分:-3)
我能够通过在每次请求后回收应用池来解决问题。转到应用程序池的“高级设置”。在“回收”下,将请求限制设置为1。