Назад | Перейти на главную страницу

IIS отказывается обслуживать zip-файлы… на одном «сайте»

Хорошо, у нас есть веб-сервер, который обслуживает множество сайтов. Многие из наших сайтов обслуживают zip-файлы без каких-либо проблем.

Однако на одном сайте он отказывается их обслуживать. Имена файлов длиннее (хотя и не действительно долго любой фантазией) ... например: 01-EXPORT-20120403.121040.zip. Я подумал, что у него проблемы с длиной или форматом имени файла, поэтому я попытался изменить одно из них на просто zip.zip ... но он все равно не обслужит его.

В IE вы получаете страницу с ошибкой: Internet Explorer не может отобразить веб-страницу
В FF вы получаете страницу с ошибкой: Соединение с сервером было сброшено

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

Я убедился, что mime-тип настроен для zip-файлов на сайте точно так же, как и на сайтах, которые успешно обслуживают zip-файлы:

Я проверил журналы сервера IIS и вижу записи, в которых запрашивается файл, и код состояния сервера, который регистрируется, равен 200 (УСПЕШНО), так что это мне не помогло.

Я установил для файла весь аудит отказов, думая, что это проблема с разрешениями, просмотрел, получил ошибку, затем проверил журналы безопасности на сервере, но аудита отказов не было.

Я запустил Firebug в FF, и вот что он мне показывает:

Но я не могу понять, ПОЧЕМУ сервер прерывает файл.
Есть идеи, что или где я могу найти дополнительную информацию, чтобы попытаться получить ее для обслуживания этих файлов?

Я пробовал перезапустить IIS на машине, но на самом деле еще не перезагружал машину.

Версия IIS / Windows - Windows Server 2003 R2.

РАЗЪЯСНЕНИЯ: На самом деле это приложение в одном подкаталоге на сайте. Еще одно приложение подкаталога на том же сайте отлично обслуживает zip-файлы (а также другие актуальные места на том же сервере). Оба приложения (рабочее и нерабочее) работают на ASP.NET 4.0.

Я также подумал, что, возможно, файлы были слишком большими, но я посмотрел на размер файла, он всего около 2 КБ, поэтому я сомневаюсь, что это проблема.

ОБНОВИТЬ: Я провел еще немного тестов, он работал на «классическом» сайте ASP, поэтому подумал, что, может быть, это только на сайтах ASP.NET. Пробовал на сайте .NET 3.5, и он работал, поэтому подумал, может быть, только на сайтах .NET 4.0. Пробовал на другом сайте .NET 4.0, и он работал, так что, по-видимому, не привязан к .NET или к версии .NET.

Ладно, кажется, я понял это. На самом деле это было сопоставление типов MIME ... которое мне пришлось УДАЛЯТЬ.

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

Однако при прямой загрузке zip-файлов он не знал, что с ними делать, поэтому я удалил mime-тип с сайта и добавил его только в свойствах каталога приложения, и теперь все работает.

Я не могу вспомнить, где именно, но в IIS есть механизм для «разрешенных» типов файлов. Он может быть глобальным или специфичным для сайта, и вы должны внести корректировку, чтобы разрешить ему сервер для файла с определенным расширением.