【问题标题】:How to know which processes is using a file under ASP.NET?如何知道哪些进程正在使用 ASP.NET 下的文件?
【发布时间】:2010-12-01 01:11:56
【问题描述】:

我正在开发一个多线程 ASP.NET 3.5 应用程序,在处理某些文件期间,我遇到了以下异常:

进程无法访问文件 因为它正在被另一个人使用 进程

我正在寻找一种方法来准确了解哪个进程正在锁定该文件,以便我可以停止它对该文件的访问。或者,如果这很复杂,我想要一种方法来通过我的线程锁定文件,以便其他线程/进程无法访问它。谢谢。

【问题讨论】:

    标签: .net asp.net multithreading exception file


    【解决方案1】:

    Process Explorer 将允许您执行此操作。只需点击“查找”->“查找句柄或 DLL”,然后输入文件名。

    然后它将向您显示每个进程以及该文件的句柄。

    【讨论】:

    • 已经试过了,但是那个未知进程使用文件的时间很短,所以我没有抓住它!
    • 嗯 - 在这种情况下,我可能会开始向我的应用程序添加文件打开日志,以尝试追踪打开它的线程。我相信很快就会有人告诉你一个使用互斥锁或其他东西的好方法。
    • 听起来像是病毒扫描程序。如果你有的话,你试过禁用它吗?
    【解决方案2】:

    要真正锁定对资源的访问(您建议的第二个选项),您可以使用 Mutex(互斥)。

    我没有在 .NET 中做过任何这些,但上面似乎有 good articles

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2012-06-21
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多