HttpPostedFile SaveAs(LocationOnServer)后文件被锁定

时间:2011-07-19 15:44:39

标签: c# .net file-upload httppostedfile locked-files

我有一个aspx网页,用作处理程序通过swfupload保存上传的文件我将文件保存在服务器上,如下所示:

HttpPostedFile uploadedFile = Request.Files["Filedata"];
uploadedFile.SaveAs(LocationOnServer);

问题是我保存文件后文件保持锁定状态(通过w3wp.exe),直到我重新启动IIS。 保存后有没有办法释放文件? 感谢

4 个答案:

答案 0 :(得分:3)

我过去曾处理过同样的情况。您需要在域帐户下运行应用程序池。也就是说,运行Web应用程序的应用程序池应设置为以域用户身份运行。然后,应该为同一个域用户授予您尝试上传到的文件夹的权限。要将域用户分配给应用程序池,请从IIS中的应用程序池节点中选择适当的池,右键单击并选择属性。从属性对话框中选择标识选项卡,然后选择“可配置”,然后提供域帐户。然后,您应该授予文件夹中同一用户的权限。

答案 1 :(得分:1)

我找不到任何文档,但您可能必须处理HttpPostedFile对象。大多数情况下,如果文件被锁定,那么与它们相关联的某些对象就没有被妥善处理。

答案 2 :(得分:0)

我会检查服务器上的文件夹权限。我有一个类似的问题,应用程序能够创建该文件但不写入它,这导致它锁定。

答案 3 :(得分:0)

您是否尝试过调用Finalize()?您是否有可能试图获取该文件的任何防病毒软件或备份软件?

我不认为权限是问题,因为如果您还没有该文件夹的权限,则无法首先将文件写入该文件夹。