понедельник, 26 декабря 2011 г.

На SharePoint не грузится файл более 28 мегабайт

Когда у вас SharePoint стоит на IIS 7.0 и выше (Windows Server 2008, Windows Server 2008 R2, Windows 7), то часто выдаётся ошибка 404 (404.13 Content length too large) когда вы пытаетесь загрузить файл более 28 МБ.
Если как обычно зайти в найстройки SharePoint "Центр администрирования > Управление приложениями > Общие параметры веб-приложений" и поднять лимит, то это не поможет.
Виной тому новые параметры IIS 7.0+, отвечающие за фильтрацию запросов (Request Filtering). По умолчанию там стоит максимальный размер передаваемого файла равный 28 МБ (точнее 28,61 МБ или 30000000 байт).
Лечится тем, что необходимо поднять этот лимит до требуемого уровня.

1. Заходим в IIS

2. Заходим в настройки модуля "Request Filtering", в меню справа в разделе Actions нажимаем "Edit Feature Settings..."

3. В окне настроек вводим в поле "Maximum allowed content length (Bytres)" желаемый максимальный размер файла. Например, 209715200 = 200МБ для запаса, а размер загружаемого файла на портал мы можем всё равно из центра администрирования править.

Всё, после этого файл должен начать загружаться.

Если хочется сделать руками, то нужно в web.config поправить или создать такие разделы:
<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <requestLimits maxAllowedContentLength="209715200" />                          
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

PS: По непонятным причинам у меня это не заработало в web.config виртуальной папки _layouts SharePoint, так как именно там расположена страница загрузки файлов Upload.aspx. Возможно превышение лимита ловится не в папке _layouts а где-то в другом месте. Я сделал это в основном web.config веб-приложения и всё заработало. 

Комментариев нет: