Пожалуйста, не отмечайте это. Это был мой оригинальный вопрос. Другие ответы были на разные вопросы, задаваемые разными спрашивающими, где этот ответ является потенциальным ответом.
У меня было это:
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");
}
Try a warm-up script.
JetBrains DotTrace is an excellent ASP.NET profiler.
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.
Попробуйте использовать SQL Profiler и наблюдайте за связанной активностью базы данных во время запуска.
Скорее всего, существует масса запросов, попадающих в базу данных при просмотре первой страницы для инициализации различных кешей.
Если это так, , вы можете сосредоточить свои усилия на оптимизации запросов, вызывающих наибольшую блокировку.
Есть еще одно попадание в .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 больше не будут проверяться на действительность!
.