.net 将tempfile移动到其他文件夹会使其无法访问

.net 将tempfile移动到其他文件夹会使其无法访问,.net,asp.net,windows,.net,Asp.net,Windows,在Windows Server 2008上的asp.net应用程序中,我有如下代码 tempfile = Path.GetTempFileName() ... Write data to tempfile ... File.Move(tempfile, storageDir + fileName) 这个很好用。问题是后来我试图从ASP.NET外部访问该文件时。我被拒绝访问,即使我访问的用户对storageDir文件夹具有(递归)读取权限 移动的文件似乎没有从其移动到的文件夹继承权限。这是正确的

在Windows Server 2008上的asp.net应用程序中,我有如下代码

tempfile = Path.GetTempFileName()
... Write data to tempfile ...
File.Move(tempfile, storageDir + fileName)
这个很好用。问题是后来我试图从ASP.NET外部访问该文件时。我被拒绝访问,即使我访问的用户对storageDir文件夹具有(递归)读取权限

移动的文件似乎没有从其移动到的文件夹继承权限。这是正确的吗?如果是的话,有没有简单的方法来解决这个问题


现在,作为一个直接修复,我已经将ASP.NET应用程序中File.Move()的每个实例都更改为File.Copy()+File.Delete(),这似乎可以解决问题。但这感觉像是一种非常肮脏的方式。

应用程序可能占用了文件


您可能需要释放资源。很难从您的代码片段中准确判断您是如何处理该文件的,但请尝试类似于
tempfile.Dispose()

的方法您描述的行为是经过设计的:

我认为您已经描述了解决此问题的最简单方法:“复制并删除”而不是“移动”