У меня есть веб-приложение ASP.NET, которое позволяет пользователю загружать файл изображения в папку;загруженное изображение затем используется приложением.Я использую элемент управления ASP.NET «FileUpload» и его метод «SaveAs» для этого.
Если я делаю это один раз, все работает нормально ... однако, если я пытаюсь загрузить другой файл сс тем же именем я получаю сообщение об ошибке, что это не может быть сделано, поскольку ранее загруженный файл используется IIS «Рабочий процесс».
Я попытался закрыть клиентский браузер и начать новый сеанс ...но я все еще не могу перезаписать существующий файл.Даже если я войду на сервер и попытаюсь удалить файл изображения, я не смогу, пока не зайду в диспетчер задач и не остановлю «Рабочий процесс (w3wp.exe)».После того, как этот процесс остановлен, я могу либо повторно загрузить файл изображения, либо удалить его напрямую.
Как я могу выполнить FileUpload.SaveAs () таким образом, чтобы файл был освобожден из IISРабочий процесс после его сохранения?
Вот код, в котором я сохраняю файл изображения:
If FileUpload1.PostedFile IsNot Nothing AndAlso
FileUpload1.PostedFile.FileName <> "" Then
FileUpload1.SaveAs(Server.MapPath(imgPath))
design1.ImageUrl = imgPath
Page.ClientScript.RegisterClientScriptBlock(GetType(Page),
"Alert", "alert('Image saved!')", True)
Итак, все работает с первого раза, но как «разблокировать» файл изображенияпосле успешного "SaveAs ()".Единственный способ обойти это - сохранить каждый файл изображения под уникальным именем (например, timeStamp'd).