Asp.net 文件。从IIS创建锁定创建的文件

Asp.net 文件。从IIS创建锁定创建的文件,asp.net,iis,io,Asp.net,Iis,Io,我有一个运行在IIS 7.5中的ASP.NET,它在本地文件系统上创建文件,然后在创建和删除之间执行一些逻辑后尝试删除。我遇到了这样一种情况,删除操作失败,响应为“进程无法访问文件'C:…\Uploads\c1fe593f-85de-4de1-b5d1-7239e1fc0648_Tulips.jpg'因为它正被另一个进程使用。”“该文件似乎被IIS锁定,我无法删除。以下是创建和删除的代码示例: // File.WriteAllBytes(path, rawData); // this seems

我有一个运行在IIS 7.5中的ASP.NET,它在本地文件系统上创建文件,然后在创建和删除之间执行一些逻辑后尝试删除。我遇到了这样一种情况,删除操作失败,响应为“进程无法访问文件'C:…\Uploads\c1fe593f-85de-4de1-b5d1-7239e1fc0648_Tulips.jpg'因为它正被另一个进程使用。”“该文件似乎被IIS锁定,我无法删除。以下是创建和删除的代码示例:

// File.WriteAllBytes(path, rawData); // this seems to leave the file open!
using (var file = File.Create(path))
{
    file.Write(rawData, 0, rawData.Length);
    file.Close(); // should close when it goes out of scope, but just to be safe
}
是否有一些特殊选项需要传递到File.Create中?如何解决这个问题?

File.writealBytes(路径,rawData)应该可以正常工作。为了确保这一点,如果可能发生这种情况,您可以使用来同步访问。还要确保代码中没有其他部分可能泄漏文件句柄


看看哪个可以让你确切地知道这个文件句柄泄露的地方。

结果证明我是个傻瓜。我忘了清理另一个控制它的资源。我的错。