После использования FileUpload.SaveAs (), как освободить сохраненный файл из IIS (рабочий процесс) - PullRequest
0 голосов
/ 26 марта 2019

У меня есть веб-приложение 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).

...