2013-12-08 4 views
0

Я использую Ajax Control Toolkit 3.5 (проект не может быть обновлен до 4.0). В проекте также используются сеансы Cookieless. Это приложение сильно зависит от состояния сеанса.AjaxControlToolkit AsyncUpload создает новый сеанс при загрузке завершен

Всякий раз, когда я отлаживаю приложение F5, он отлично работает. Однако я развернул приложение для IIS7 и произошло странное поведение. Всякий раз, когда файл загружается, окно ввода становится зеленым, как ожидалось, но оно убивает состояние сеанса. Скорее всего, создается новый сеанс.

Я ничего особенного не делаю. Я вставил элемент управления:

<asp:AsyncFileUpload ID="AsyncFileUpload1" runat="server" PersistFile="true" Width="220" /> 

И я проверяю FileBytes на Save. Я думал, что может существовать некоторая несовместимость с PersistFile, но, опять же, он отлично работает при отладке.

Я очень благодарен за любые советы!

ответ

0

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

Предположим, что вы в настоящее время сохраняете файлы в каталоге с именем /files. Вот что вы можете сделать, если вы по-прежнему нуждаются в доступе к тем файлу через URL:

  1. В IIS создать виртуальный каталог с именем files
  2. Направьте виртуальный каталог в каталог за пределами вашего веб-приложения

При сохранении файлов в настоящее время, они все еще будут доступны на тот же URL, но они будут сохранены вне веб-приложение и приложение не будет перезапущен

+0

Спасибо. Я не указываю место сохранения как таковое - я просто использую свойство FileBytes из моего метода сохранения (если HasFile является истинным). Я работал с другими библиотеками управления, и они используют временную папку appdata. На самом деле, я не вижу ничего подобного, поэтому я не уверен, как загрузка persistfile работает в фоновом режиме. – mquickel

Смежные вопросы