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

IIS: может перейти к файлу, но получить 404 при нажатии для загрузки

Я настроил сервер IIS 6 в качестве файлового сервера. Однако для некоторых файлов клиенты получают ошибку 404.

Чтобы диагностировать проблему, я включил просмотр каталогов. Я могу перейти непосредственно к одному из рассматриваемых файлов, щелкнуть файл и получить ошибку 404.

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

Записи журнала IIS для этой попытки доступа к файлу:

2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 - 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 401 2 2148074254
2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 - 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 401 1 0
2009-10-26 23:23:38 W3SVC882002786 192.168.1.10 GET /path/to/myfile.war-0.2.45.M.war - 8889 MYDOMAIN\myuser 72.162.134.92 Mozilla/5.0+(Windows;+U;+Windows+NT+6.0;+en-US)+AppleWebKit/532.0+(KHTML,+like+Gecko)+Chrome/3.0.195.27+Safari/532.0 404 3 50

Похоже, есть два 401 (доступ запрещен), за которыми следует 404.

Что интересно, .jar файлы в том же каталоге могут быть доступны и загружены.

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

Вероятно, ваш сервер не знает, что .war - это тип файла, который необходимо загрузить, а не выполнить. Затем он запускается через разрешенные вами расширения веб-службы для любых совпадений. Если он его не находит, он выдает ошибку 404, хотя файл действительно существует.

Если вы установите MIME-тип для файлов войны типа application / octet-stream, это должно решить вашу проблему.

Похоже, ваш файл имеет размер более 2 ГБ, что, если я не ошибаюсь, намного превышает допустимый размер для IIS. вам необходимо отредактировать файл metabase.xml, чтобы изменить значение. Я считаю, что вам нужен параметр AspBufferingLimit, и если вы посмотрите на него, вы увидите, что он установлен на 4194304. Установите его на 2560000000 и посмотрите, сможете ли вы загрузить файл.