4

我有一个文本文件,其中包含 JSON 格式的缓存数据。我正在尝试更新文件,但我的 IIS 工作进程正在锁定文件,当我尝试写入文件时,我收到错误消息“进程无法访问文件,因为它正被另一个进程使用”。我在 Google 和 Stack 上搜索了答案,但似乎找不到与 IIS 锁定文件相关的任何内容。该文本文件包含在我的 Visual Studio 解决方案中,我在本地计算机上使用 IIS 来托管我的网站。对于我的第一个问题,我想知道如何让 IIS 释放文件或根本不锁定它。对于第二个问题,我想知道是否有不同的方法来防止 IIS 锁定我的文件。

4

4 回答 4

7

IIS 没有锁定您的文件。IIS 不知道您的文件是否存在。某些应用程序(可能是您自己的)正在锁定文件。

尝试使用SysInternals中的procmon之类的程序来找出锁定文件的进程。

于 2012-06-26T18:32:53.487 回答
6

午休后,我意识到工作进程挂在文本文件上,因为它正在从中读取一行,然后尝试写入。我将文件包装在 using 语句中,并在读取后移动写入,现在它正在工作。

于 2012-06-26T19:58:50.730 回答
0

尝试发布 .NET Core API 应用程序时,我遇到了类似的问题(文件被 IIS 工作进程锁定)。

如果它对任何人有帮助,我的问题是由调用 API 的相关应用程序引起的,在尝试发布 API 时处于调试模式。

于 2020-02-25T16:59:41.270 回答
-3

我能够通过在每次请求后回收应用程序池来解决问题。转到应用程序池的高级设置。在回收下,将请求限制设置为 1。

于 2016-06-28T20:40:58.827 回答