Загрузка файлов не работает при развертывании на сервере

Недавно я приступил к созданию собственных компонентов асинхронной загрузки файлов для ASP.NET. Я извлек уроки из проекта FileUpload Даррена Джонстона и создал HttpModule для извлечения файлов из отправленных данных.

У меня все работает как надо при тестировании с VS 2008 с использованием сервера разработки. Я даже зашел так далеко во время тестирования, чтобы убедиться, что запрос перехватывается модулем до того, как файлы начнут загружаться. После того, как я был удовлетворен всем, я развернул проект на нашем веб-сервере (Win 2008 с IIS 7). Я был в ужасе, узнав, что элементы управления не функционировали при развертывании.

После некоторой удаленной отладки я обнаружил, что событие HttpApplication.AuthenticateRequest (мое местоположение для подключения к процессу) не вызывается до тех пор, пока файлы не будут полностью загружены.

Я проверил все, что мог придумать, и до сих пор не смог найти причину такого изменения в поведении. Есть идеи?


person highvoltage    schedule 16.02.2010    source источник


Ответы (1)


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

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

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

person Sam    schedule 16.02.2010
comment
Только что перепроверил, и он действительно уже в интегрированном режиме. - person highvoltage; 16.02.2010