Приложение WPF работает медленно при запуске
В моем приложении WPF в настоящее время отображается только экран с некоторыми элементами управления, он не подключается к БД или не имеет каких-либо других функций. Это простой экран пользовательского интерфейса.
Когда я тестировал на некоторых компьютерах (WinXP SP2), я обнаружил, что для запуска было занято более 15 секунд. Все они были в нашей области.
Я захватил аналогичный компьютер, только с установленной Windows, и для запуска приложения потребовалось 2 секунды.
Затем я добавил компьютер в наш домен, и его тестирование с пользователем домена показало, что для запуска также потребовалось 15 секунд. Я тестировал снова с предыдущим пользователем (местным пользователем), и он все еще быстро. Я создал другого локального пользователя, но он занимает 15 секунд, что и пользователь домена.
Я добавил других локальных пользователей, но они также были медленными.
Подводя итог: приложение запускается быстро (2 секунды) только у одного пользователя, первого из которых я тестировал. Все остальные пользователи (домен или локальные) работают медленно (15 секунд).
Я проверял Улучшение времени запуска приложений WPF, но моя проблема, похоже, требует другого подхода, Кто-нибудь выясняет, что может случиться?
Ответы
Ответ 1
Я нашел другое решение этой проблемы в этой документации из Microsoft.
Добавление следующей конфигурации в файл app.config также решит проблему:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Таким образом, вам не нужно менять конфигурацию компьютера. Это просто настройка приложения.
UPDATE:
Похоже, что .NET 4.0 исправил эту проблему, как описано здесь в MSDN.
Ответ 2
Является ли система подключена к сети, но не может попасть в Интернет, потому что прокси-сервер не настроен? Если да, перейдите в "Настройки Интернета" (например, "Свойства обозревателя Internet Explorer" ), "Дополнительно" и просмотрите в дереве "Безопасность" и флажок "Проверять отозванные сертификаты" или что-то в этом роде (я использую немецкую Windows, поэтому у меня нет Английский лейбл под рукой). Снять и снова проверить.
Если это устранит проблему, у вас есть одна подписанная сборка, которая не принадлежит Microsoft, для которой .NET Framework будет проверять наличие рекогносцировки и тайм-аут через 15 секунд. Если вы отключите проверку или настройте подключение к Интернету должным образом, вам не придется ждать.
Ответ 3
Открывает ли он файл или каким-то образом взаимодействует в сети? Потому что, если нет, я бы предположил, что независимо от того, зарегистрировался ли вы в домене или запущен как локальный пользователь, вероятно, это красная селедка.
Собираетесь ли вы в режиме отладки или выпуска? Стоит попробовать режим выпуска, если вы еще этого не сделали, потому что запуск в debug делает нагрузку дополнительной проверки ошибок.
Ответ 4
Вы проверили, есть ли какие-либо политики домена, которые могут повлиять на этот сценарий?
Ответ 5
У меня была эта проблема (.NET 4.5). В моем случае проблема заключалась в том, что компьютер не был подключен к Интернету, но было другое устройство (камеры и т.д.), Которые были подключены через GigE. Запуск каждого приложения .NET задерживался на 20 секунд.
Решение было довольно простым: просто подключив компьютер к Интернету, запустил любое приложение .NET(первый запуск занял около 7 секунд), и после этого каждый запуск был довольно быстрым, даже если компьютер больше не подключался к интернет. Кроме того, мне пришлось отключить протокол TCP/IP V6 (вызванный 3-5-секундной задержкой).
Еще одно возможное решение - выбрать "Свойства" для версии интернет-протокола 4 (TCP/IPv4), затем выбрать "Дополнительно", выбрать вкладку "WINS" и установить "Отключить NetBIOS через TCP/IP".