Загрузка файлов не работает при развертывании на сервер - PullRequest
1 голос
/ 16 февраля 2010

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

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

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

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

1 Ответ

0 голосов
/ 16 февраля 2010

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

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

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

...