ASP.NET 3,5 веб-приложения Проект чрезмерно занимает много времени для начальной загрузки

Пожалуйста, не отмечайте это. Это был мой оригинальный вопрос. Другие ответы были на разные вопросы, задаваемые разными спрашивающими, где этот ответ является потенциальным ответом.

У меня было это:

 class Util {
  static boolean isNeverAsync = System.getenv().get("asyncc_exclude_redundancy").equals("yes");
}

вы, вероятно, видите проблему, env var может возвращать нуль вместо строки. Поэтому, чтобы проверить свою теорию, я изменил ее на

 class Util {
  static boolean isNeverAsync = false;
}

, и проблема ушла. Очень жаль, что Java не может дать вам точную информацию об ошибке стека, как бы странно.

способ безопасной инициализации может быть следующим:

  static boolean isNeverAsync = false;

  static {
    var env = System.getenv().get("asyncc_exclude_redundancy");
    isNeverAsync = env != null && env.equals("yes");
  }
5
задан Lightweight 14 May 2009 в 00:03
поделиться

4 ответа

Try a warm-up script.

JetBrains DotTrace is an excellent ASP.NET profiler.

2
ответ дан 14 December 2019 в 19:25
поделиться

How many projects are there? If you have heaps of assemblies and dlls in the bin directory, that can slow load times considerably (even if they are quite small). That's the best I can suggest.

0
ответ дан 14 December 2019 в 19:25
поделиться

Попробуйте использовать SQL Profiler и наблюдайте за связанной активностью базы данных во время запуска.

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

Если это так, , вы можете сосредоточить свои усилия на оптимизации запросов, вызывающих наибольшую блокировку.

0
ответ дан 14 December 2019 в 19:25
поделиться

Есть еще одно попадание в .NET 2.0. Если в папке корзины есть какие-либо подписанные сборки, CLR пытается подключиться к URL VeriSign и получает список отзывов сертификатов, чтобы проверить их действительность.

Это может потребовать некоторое время на запуск. Если вы считаете, что это может помочь решить вашу проблему, то вы можете обратиться к следующим статьям MS:

http://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282
http://support.microsoft.com/kb/936707

Для решения этой проблемы для каждого приложения вы можете добавить следующие настройки в разделе config вашего app.config/web.config.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
       <generatePublisherEvidence enabled="false" />
    </runtime>
</configuration>

Конечно, если вы добавите эту настройку, подписанные DLL больше не будут проверяться на действительность!

.
3
ответ дан 14 December 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: