Просмотр изображений в веб-браузере, а затем их удаление приводит к перезагрузке веб-сервера - PullRequest
0 голосов
/ 05 марта 2012

Я использую ASP.net MVC 3 и сервер разработки ASP.net.

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

Если я затем удаляю содержимое папки сеанса и повторно загружаю изображения, приложение перезапускается.

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

Любые идеи, если есть способ, скажем,удалить их, чтобы веб-сервер не возражал против повторной загрузки?

Я не хочу терять сеанс, который вы видите.

Вот код удаления ...

    public static void EmptyFolder(string directory)
    {
        if (!Directory.Exists(directory))
        {
            return;
        }

        DirectoryInfo directoryInfo = new DirectoryInfo(directory);

        EmptyFolder(directoryInfo);
    }

    private static void EmptyFolder(DirectoryInfo directoryInfo)
    {
        foreach (FileInfo file in directoryInfo.GetFiles())
        {
            file.Delete();
        }

        foreach (DirectoryInfo subfolder in directoryInfo.GetDirectories())
        {
            EmptyFolder(subfolder);

            subfolder.Delete();
        }
    }

1 Ответ

2 голосов
/ 05 марта 2012

Это ожидаемое поведение; Если вы удалите файл, который существует в контексте папки веб-сайта, IIS перезапустится в случае, если ему придется что-либо динамически перекомпилировать.

Это то же самое, что сохранить изменения в Web.Config.

Если это слишком большая проблема, необходимо переместить изображения за пределы папки веб-сайта.

Что касается сеанса, вы можете либо переместить ресурсы, как я предлагал, либо рассмотреть возможность переключения на хранилище сеансов SQL, либо использовать службу сеансов ASP.Net; который отключает его от веб-сайта.

Загрузка изображения в браузере приводит к тому, что IIS связывает его с вашим рабочим процессом, вероятно из-за кэширования, но уместно спросить, где находится папка сеанса.

Структура вашей папки похожа на эту?

c:\
   inetpub
   |__ + wwwroot
          |__ - MyWebSite
          |__ - SessionFolder

или это?

c:\
   inetpub
   |__ + wwwroot
          |__ - MyWebSite
                |__ - bin
                |__ - Content
                |__ - Scripts
                |__ - SessionFolder
                |__ - Views
                |__ - web.config
                |__ - global.asax
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...