Я знаю, как подключить отладчик к службе Windows, но я не могу подключиться к тому, который устанавливается и запускается установщиком Windows. Я пробовал:
Установка Thread.Sleep (TimeSpan.FromSeconds (30)); в начале запуска, но когда я пытаюсь подключиться в Visual Studio, имя службы не отображается в качестве параметра. Обычно это работает, имя службы отображается в списке, но при использовании установщика это не так.
Настройка Debugger.Break и Debugger.Launch. Никто на самом деле ничего не делает.
Что я могу сделать для отладки моего сервиса?
Обновление:
Я добавил Thread.Sleep на 30 секунд в качестве первой строки службы, и когда установщик запрашивает у меня, что ему следует делать в случае сбоя, я запускаю службу в списке служб (поскольку она не был удален), и это не удалось мгновенно, без ожидания 30 секунд. Файлы, которые он устанавливает, являются самыми последними (у них есть правильное время изменения). 30-секундная пауза возникает, если я запускаю тот же клиент из моего тестового приложения в том же проекте, но по какой-то причине установщик что-то напортачит
Я действительно не уверен, как отладить это, и расстраивает то, что этот сервис работал нормально.
Ответ:
Проверка журнала приложения показала, что было выброшено исключение. Оказалось, что я случайно скопировал файл в своем инсталляторе, что объясняет, почему ни один из моих методов отладки не работал. После того, как я восстановил файл, я смог присоединиться к Visual Studio как обычно (используя 30-секундную паузу, чтобы дать мне время).