ASP.NET MVC3 Опубликовать настройки в web.config - PullRequest
1 голос
/ 25 января 2012

Я опубликовал сайт ASP.NET MVC3.Работает отлично.Однако, оглядываясь назад на мой файл web.config, я не был уверен, что некоторые из значений, которые я использовал, являются правильными для публикации по сравнению с разработкой.Эти конфигурации находятся в разделе <system.web>.

...
    <system.web>
    <httpRuntime requestValidationMode="2.0" executionTimeout="200" maxRequestLength="20000000"/>
    <compilation debug="true" targetFramework="4.0">
...

Я читал здесь (http://msdn.microsoft.com/en-us/library/e1f13641.aspx), что использование debug = true в компиляции игнорирует значение executeTimeout, равное 200, и использует значение по умолчанию:110. Похоже, это так, и сайт настроен так, что позволяет загружать очень большое количество файлов одновременно.Тем не менее, всего за 110 секунд можно загрузить не так много.

Мой вопрос таков: правильный ли параметр публикации живого сайта для отладки "false"?Кроме того, все еще безопасно использовать requestValidationMode = "2.0", учитывая, что asp.net теперь находится в версии 4 (скоро будет 4.5)?

Ответы [ 2 ]

3 голосов
/ 25 января 2012

Validationmode 2.0 не является фреймворковой версией и может оставаться таким же.

Поставьте debug = false, и все в порядке.

2 голосов
/ 26 января 2012

requestValidationMode ... Насколько я знаю, это имеет значение , которое должно быть установлено на 2,0, если вы хотите разрешить специальным символам (<,>,% и т. Д.) В данных запроса передавать ASPПроверка запросов .NET вообще.requestValidationMode = "2.0" означает "применять проверку только на страницах (например, .aspx), а не на каждый запрос (как было введено в 4.0). Это позволяет ASP.NET MVC взять на себя проверку - иследовательно, также позволяет вам отключить его для конкретных запросов.

Безопасно ли это? Если вы убедились, что все действия или контроллеры, к которым применено [ValidateInput(false)], или модели с [AllowHtml] были выполнены правильнозащищен от атак. Имран Балоч имеет полное объяснение здесь .

И да, отладка должна быть "ложной" по нескольким причинам, включая производительность и использование памяти. Также, debug = "true"изменяет политику кэширования по умолчанию для статических файлов, чтобы никогда не кэшировать файлы в браузере, что означает тонны избыточных запросов на скрипты, CSS и т. д.

Что касается загрузки изображений, кроме приведенных предложений, проверьте в Event Viewerчто это не реальная переработка пула приложений по той или иной причине, а не тайм-аут выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...