2010-11-17 66 views
1

在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(),这似乎解决了这个问题。但这感觉像是一种非常肮脏的做事方式。

回答

0

该应用程序可能会占用文件。

您可能需要释放该资源。很难从代码片段中确切知道您如何处理文件,但请尝试类似tempfile.Dispose()之类的内容。