2014-04-14 4 views
1

Я запускаю IIS 8 на Windows Server 2012R2, и у меня возникла проблема. Я хотел бы иметь возможность размещать большие файлы, но это вызывает проблемы. Если я поместил на нем что-то более 400 МБ, тогда, когда я попытаюсь получить доступ к этому файлу из браузера, я получаю ошибку «404 файл не найден».Не удается разместить большие файлы на веб-сервере IIS

Следует отметить, что мелкие файлы работают нормально. Есть предположения?

+0

Х ?? Я считаю, что это не проблема загрузки 400 МБ файлов. Проверьте, правильно ли вы настроили собственную страницу по умолчанию. –

+0

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

+0

Так проблема при открытии файла? хм ... Это довольно странно. Ваш файл поврежден? –

ответ

2

Проблема может быть, что ваши типы MIME должны быть изменены. Из https://serverfault.com/a/78526/12894:

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

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

Смотрите также статью Microsoft Requests for static files return 404 error (IIS 6.0)

+0

AHA! Вот и все. Единственными файлами, которые я имел достаточно большой для тестирования, были видеофайлы .mkv, которые не являются MIME-типом по умолчанию. – Jordan

0

Вы пробовали посмотреть файл Web.config для тега maxrequestlength? Проблема в этом случае заключается не в загрузке, а в запросе на файл при загрузке страницы. Посмотрите на следующую строку:

<httpruntime maxrequestlength="51200" executiontimeout="7200"/> 

Где установить второй номер для 2-х часов (только случайное времени ожидания) и первый номера является максимальным размером файла, что страница, которая нуждается в файл может запросить. В этом случае вы можете иметь размер загрузки 500 МБ. Это может исправить это, однако, есть еще один раздел, который вы можете редактировать, добавлять в целях безопасности:

<security> 
<requestFiltering> 
<requestLimits maxAllowedContentLength="524288000"/> 
</requestFiltering> 
</security> 

Здесь, опять-таки у вас есть 1024x1024 * 500 = 500Mb. Это отредактировано в свойствах сеанса - вы можете сделать это через интерфейс управления или написать собственные скрипты. Посмотрите на MSDN здесь:

http://technet.microsoft.com/en-us/library/cc725820(v=ws.10).aspx

+0

Я только что проверил это, и он установлен на 4 ГБ (или довольно близко): 4,294,967,295 – Jordan

+0

Ой, мой плохой. Благодаря! Кто-нибудь из вас работает для вас кстати? –

Смежные вопросы