Загрузка файлов не работает при развертывании на сервер
Недавно я приступил к созданию собственных асинхронных компонентов загрузки файлов для ASP.NET. Я извлек уроки из проекта FileUpload Даррена Джонстона и создал HttpModule для извлечения файлов из представленных данных.
У меня все работает как надо при тестировании с VS 2008 с использованием Development Server. Я даже зашел так далеко во время тестирования, чтобы убедиться, что модуль перехватывает запрос до начала загрузки файлов. После того, как я остался доволен, я развернул проект на нашем веб-сервере (Win 2008 с IIS 7). Я с ужасом узнал, что при развертывании средства управления не функционируют.
После некоторой удаленной отладки я обнаружил, что событие HttpApplication.AuthenticateRequest (мое местоположение для подключения к процессу) не вызывалось, пока файлы не были полностью загружены.
Я проверил все, что могу придумать, и до сих пор не смог найти причину такого изменения в поведении. Есть идеи?
1 ответ
Я предполагаю, что среда выполнения ASP.NET не работает в интегрированном режиме со средой выполнения IIS на сервере, поэтому загрузка файла должна быть полностью буферизована в хост-процессе IIS, прежде чем она может быть передана среде выполнения ASP.NET.
Это объясняет, почему конвейер запросов не запускается, пока данные не будут полностью загружены.
Проверьте конфигурацию сервера и убедитесь, что для приложения ASP.NET включен интегрированный режим.