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