C# 文件在HttpPostedFile另存为后被锁定(LocationServer)

C# 文件在HttpPostedFile另存为后被锁定(LocationServer),c#,.net,file-upload,httppostedfile,locked-files,C#,.net,File Upload,Httppostedfile,Locked Files,我有一个aspx网页,用作处理程序,通过swfupload保存上传的文件。我将文件保存在服务器上,如下所示: HttpPostedFile uploadedFile = Request.Files["Filedata"]; uploadedFile.SaveAs(LocationOnServer); 问题是,保存文件后,该文件将保持锁定状态(由w3wp.exe锁定),直到重新启动IIS。 保存后有没有办法释放文件? 谢谢我找不到任何文档,但您可能必须处理HttpPostedFile对象。大多数

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

HttpPostedFile uploadedFile = Request.Files["Filedata"];
uploadedFile.SaveAs(LocationOnServer);
问题是,保存文件后,该文件将保持锁定状态(由w3wp.exe锁定),直到重新启动IIS。 保存后有没有办法释放文件?
谢谢

我找不到任何文档,但您可能必须处理HttpPostedFile对象。大多数情况下,如果文件被锁定,则与它们关联的某些对象未被正确处理。

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

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

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


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

谢谢,我使用了以下技巧: