2010-01-21 2 views
1

Для моего приложения VB.NET я использую программу установки Windows, которая поставляется с Visual Studio. Я могу успешно установить и запустить свою программу на любом компьютере в нашем офисе, кроме одного. На этой конкретной машине моя программа остановится примерно на 30 секунд, прежде чем сможет загрузить основную форму. Когда я запускаю диспетчер задач, процессор колеблется от 0 до 1%, поэтому он не делает ничего, кроме замерзания. Он в конечном итоге загрузится, но на самом деле это не займет много времени, особенно когда он мгновенно загружается на другие компьютеры. Теперь эта машина представляет собой Windows XP с пакетом serverice 3 и .net 3.5 sp1. Можете ли вы, ребята, подумать обо всем, что могло бы вызвать это?WinForms Form Hangs при запуске на одной машине

+0

Плохая установка .NET Framework может быть? –

+0

Что у вас есть в обработчике события загрузки основной формы? – Ken

+0

Это происходит, когда вы запускаете программу на этой машине, не так ли? Тогда это не имеет никакого отношения к развертыванию! –

ответ

3

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

+0

Хорошо, дайте этот снимок и посмотрите, что произойдет. – broke

1

Получаете ли вы этот результат каждый раз, когда приложение загружается или только в первый раз? Если последнее, вы можете это сделать.

Содержит ли приложение какие-либо внешние ресурсы? Например, база данных или общий сетевой ресурс. Если да, можете ли вы проверить условия вокруг этого?

+0

Каждый раз, когда он загружается. Его подключение к локальной версии SQL на компьютере, а не в сети. – broke

1

Используйте Run-> services.msc, чтобы проверить, что все те же услуги запускаются на рассматриваемой машине, которые запускаются на всех других машинах. Похоже, что сервис загружается «вручную» на рассматриваемой машине (отсюда и задержка) и автоматически загружается на другие машины. как уже упоминалось выше Process Monitor (часть MS Sysinternals Suite) может быть очень полезным

Edit: Вы сказали диспетчер задач, процессор колеблется примерно от 0 до 1%, ли это включать в себя ядра Время ? По умолчанию Диспетчер задач не отображает Kernel Times, вам нужно выбрать Просмотреть из меню, а затем нажать Показывать Kernel Times из выпадающего меню. Действия ядра могут быть весьма значительными, в то время как процессор мало или вообще не работает.

Смежные вопросы