Подтвердить что ты не робот

<compilation debug = "true" > в предварительно скомпилированном веб-сайте asp.net - Это имеет значение?

Я развертываю предварительно скомпилированный и полностью связанный с веб-сайтом веб-сайт с использованием проектов веб-развертывания в Visual Studio 2008. Обратите внимание, что все сборки и проекты были скомпилированы в режиме выпуска.

Все мои страницы предварительно скомпилированы в режиме выпуска. Поэтому они не будут перекомпилированы, они будут загружены только во время выполнения. В этом случае, когда компиляция страницы не требуется, установка <compilation debug="true"> в system.web будет иметь значение?

4b9b3361

Ответ 1

Ознакомьтесь с отличными ссылками ниже:

В принципе:

  • Ваш код будет работать медленнее из-за накладных расходов на поддержку отладки.
  • Сценарии и изображения не кэшируются с клиентской стороны, потому что вы не хотите, чтобы в кеширование было включено кэширование, если вы постоянно вносите изменения и отлаживаете.
  • Запросы не установлены. Опять же, когда вы отлаживаете свой код, вы не хотите получать таймаут запроса.

Ничего из вышеперечисленного не желательно. Вы найдете больше недостатков в приведенных выше ссылках.

Ответ 2

В соответствии с документация:

Указывает, следует ли компилировать двоичные файлы отладки, а не файлы розничной торговли

Однако, только что быстро отразившись через System.Web, я вижу, что флаг отладки используется (прямо или косвенно) следующим образом:

  • Компиляция времени выполнения (ASPX/ASCX/MASTER)
  • Генерация кода файлов возможностей браузера
  • HttpDebugHandler, который используется во время сеанса отладки

В результате, если ваш сайт предварительно скомпилирован, вы не получите удар производительности. Однако, поскольку HttpApplication ответит на HTTP-глагол DEBUG, вы откроете себе проблемы с безопасностью.

Короче говоря, установите debug = false, даже если ваш сайт предварительно скомпилирован.

Изменить: debug = true приведет к результату (см. ответ Mehmet Aras) для кэширования и отсутствия времени выполнения, но это не уменьшит скорость выполнения для скомпилированных страниц.

Ответ 3

Из сообщения в блоге ASP.Net - Никогда не опасайтесь публиковать свой сайт с помощью debug = true:

  • Компиляция страниц ASP.NET занимает больше времени (при отключении пакетной компиляции)
  • Обычно код выполняется медленнее
  • Увеличен объем памяти.
  • Сценарии и изображения, загруженные с помощью обработчика WebResources.axd, не кэшируются.
  • Запросы не тайм-аут (это плохо, как в производственной среде, мы не хотим, чтобы запросы зависали бесконечно)

В статье далее рекомендуется установить рабочий сервер machine.config, чтобы обеспечить принудительный режим розничного развертывания, что по сути означает, что отладка всегда неверна.