Удаление больше не используемого статического содержимого, заблокированного IIS

Я работаю над приложением ASP.NET MVC, в котором пользователь может управлять своим профилем. Он может изменить, например, свою фотографию.

Поскольку фотография считается статическим содержимым, IIS заблокирует этот файл, насколько я понимаю, и кэширует его для оптимизации производительности.

Проблема возникает, когда пользователь пытается изменить изображение. Что я делаю:

  1. Запишите новое изображение.
  2. Начать обслуживание нового. Старый файл никогда не будет обслуживаться.
  3. Теперь мне нужно удалить старое изображение. Но у меня есть исключение отказано в доступе.

Как указать IIS разблокировать эту старую фотографию, чтобы я мог ее удалить.

Можно представить себе настройку цикла, который пытается удалить фотографию, и если это невозможно, он будет ждать и повторять попытку... но я понятия не имею, сколько времени это может занять.

Есть ли у вас лучшее решение, позволяющее указать IIS разблокировать файл, который никогда не будет использоваться?


person minchiya    schedule 29.11.2013    source источник
comment
Я никогда не испытывал этого. Опубликуйте код, используемый как для создания, так и для удаления изображений профиля пользователя.   -  person Mike Perrenoud    schedule 30.11.2013
comment
Очень похожая проблема: stackoverflow.com/questions/9381072/   -  person minchiya    schedule 30.11.2013
comment
Опять же, вы уже обслуживаете новый файл, есть проблема с вашим кодом. Пожалуйста, опубликуйте конечные фрагменты, которые сохраняют и обслуживают файл.   -  person Mike Perrenoud    schedule 30.11.2013
comment
Что ж, под предоставлением нового контента (изображений) я имел в виду, что содержимое базы данных изменилось, и если новый человек запросит динамическую страницу с использованием этих изображений, он получит новый контент. Мое понимание проблемы таково: если старый контент используется (только что был обслужен), когда мы пытаемся выполнить модификацию; удаление старых файлов, обслуживаемых в настоящее время, будет отклонено. Нет? То, что я описываю выше, обрабатывается более чем одним классом. К сожалению, у меня нет ни одного способа сделать это. Я постараюсь показать это на меньшем примере.   -  person minchiya    schedule 30.11.2013