AynaxControlToolkit's AsyncFileUpload неправильно работает при развертывании в Интернете - PullRequest
3 голосов
/ 02 января 2011

В случае, если это имеет значение, следующее находится внутри всплывающего набора инструментов, в котором есть панель обновления.

<p>
    <asp:Label Text="Picture" runat="server" Width="75"></asp:Label>
    <ajaxToolkit:AsyncFileUpload ID="MediaPicture" runat="server" Width="200"
        OnClientUploadStarted="BlockSubmits" ClientIDMode="AutoID"
        OnClientUploadError="UnblockSubmits" PersistFile="true"
        OnClientUploadComplete="UnblockSubmits" 
    />
</p>

Функции javascript просто блокируют / отпускают кнопку отправки, чтобы предотвратить проблемы при загрузке.

Это прекрасно работает на локальном хосте, но при развертывании в сети на сервере GoDaddy я не могу загрузить файлы размером более нескольких КБ, даже если локально я могу загрузить файлы большего размера (~ 2 МБ) ...

Кажется, я не могу найти причину такого поведения, может ли это быть в IIS? Я прочитал что-то об очистке пула приложений до того, как загрузка могла быть завершена, это могло произойти?

Кстати, на всякий случай, на стороне сервера, я просто делаю снимок из этого элемента управления

byte[] picture = MediaPicture.FileBytes ?? (string.IsNullOrEmpty(mediaID) ? null : Media.SelectByID(int.Parse(mediaID)).GetPicture());

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

А потом я сохраняю его в базе данных.

есть мысли о том, почему это может происходить?

спасибо!

Ответы [ 4 ]

1 голос
/ 06 января 2011

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

Эта запись в блоге имеет приличныйобъяснение того, почему .

Что касается того, почему это работает локально, если это проблема, как объяснено выше, это из-за способа, которым браузер обрабатывает «локальные» из «интернет» доменов.

0 голосов
/ 27 июня 2012

У меня возникла точно такая же проблема, но в том числе веб-сайт в зоне «Местная интрасеть» в IE настройка безопасности была обходным путем.

Однако я обновил Ajax Control Toolkit, и проблема была полностью решена. Больше нет необходимости связываться с настройками безопасности.

0 голосов
/ 07 января 2011

Полагаю, вы используете разные версии IIS в своей среде разработки и на производственном сервере (в данном случае Go Daddy). Можете ли вы проверить и сообщить мне точные версии IIS, чтобы я мог предоставить вам лучшее решение? Причина. IIS 7.0 имеет немного другую конфигурацию, чем IIS 6.0.

0 голосов
/ 04 января 2011

При загрузке Assync инструментария ajax по-прежнему должна быть запись с максимальным размером запроса ASP.NET.

Этот максимальный размер задается в web.config вашего приложения И внутри IIS.Поскольку вы используете стороннего провайдера ... попробуйте поиграть с web.config в разделе

<httpRuntime maxRequestLength="40960"/>

Если это вам не поможет, проверьте элемент управления SWFUpload ... сохранены моискин пару раз.

С уважением,

...