Сеанс и пул приложений: приложение ASP.NET, которое хранит и отображает изображения - PullRequest
0 голосов
/ 18 марта 2009

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

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

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

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

Мне было бы интересно услышать, что вы можете сделать в качестве обходного пути.

Ответы [ 3 ]

1 голос
/ 19 марта 2009

Я бы проверил журнал событий, чтобы убедиться, что то, что вы делаете, не приводит к сбою AppPool

1 голос
/ 18 марта 2009

Попробуйте сохранить сеанс в состоянии вне процесса. Это можно сделать, запустив «Службу состояния ASP.Net» на экране «Службы» в разделе «Инструменты администрирования», а затем используя эту строку в файле web.config:

<sessionState
            mode="StateServer"
            stateConnectionString="tcpip=127.0.0.1:42424"
            cookieless="false"
            timeout="20" />

Это позволит вашим сеансам сохраняться даже после сброса IIS.

0 голосов
/ 18 марта 2009

Вы можете хранить такую ​​информацию, как идентификатор изображения, в asp: HiddenField или в виде .Attribute [] в элементе управления. Например, когда мне нужно привязать кнопку к определенному элементу в списке, я даю кнопке Атрибут, который отражает идентификатор соответствующего элемента. Я использую скрытые поля для другой информации, которая не имеет одного связанного элемента управления (т. Е. Идентификаторов записей и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...