Я ненавижу присоединяться к процессу из Visual Studio.Это работает, но, кажется, также потребуется вечность, чтобы составить список процессов на выбор.Возможно, это потому, что наши системы заблокированы слишком плотно.Вполне возможно, что в другой среде это работает просто отлично.
Тем не менее, я считаю, что гораздо проще просто вызвать программную точку останова при запуске службы и перейти к отладке в начале.Чтобы сделать это, позвоните в OnStart()
callback:
System.Diagnostics.Debugger.Break();
Когда вы запустите службу, вы должны получить приглашение, указывающее, что произошло необработанное исключение.
Выберите параметр «Да», ответьте «Да» на приглашение UAC, выберите, какой экземпляр Visual Studio вы хотите использовать, и затем выполните обычную отладку при запуске Visual Studio.
Когда вы закончите отладку, просто остановите службу, и отладчик автоматически закроется.Однако не закрывайте этот экземпляр Visual Studio.Внесите все необходимые изменения для создания службы и перестройте ее.Затем, когда вы перезапустите службу и вы дойдете до того, чтобы выбрать экземпляр Visual Studio для использования, он включит ваш исходный экземпляр отладки в список.Гораздо быстрее вернуться к этому, чем каждый раз создавать новый экземпляр.
HTH