Я борюсь с довольно сложной задачей отладки и надеюсь, что у кого-то могут быть некоторые подсказки, как сделать эту работу.
Здесь сценарий:
У меня есть служба Windows С#, которая работает под учетной записью пользователя с правами администратора и запускает отдельный исполняемый процесс под учетной записью пользователя, которая имеет стандартные пользовательские привилегии. Эти два процесса предназначены для связи с использованием WCF.
К сожалению, когда дочерний процесс запущен, он немедленно сбрасывается, и ничто в журнале событий не указывает, что произошло. Родительский процесс продолжает работать без исключений.
Для информации: эти два приложения надежно работают вместе в конфигурации, в которой родительский процесс является настольным приложением. У меня также был успех с родителем как службой Windows, но только тогда, когда оба процесса работают под одной учетной записью пользователя с правами администратора.
Теперь мне нужно переконфигурировать их отношения, чтобы ограничить привилегии дочернего процесса, но это происходит при сбое.
Чтобы доказать, что то, что я пытаюсь сделать, возможно, я создал два приложения-заглушки и успешно их запустил в желаемой конфигурации. Итак, я могу сделать вывод, что мое настоящее дочернее приложение содержит что-то, что несовместимо с этой конфигурацией и которое вызывает сбой даже до запуска кода. К сожалению, поскольку дочерний процесс основан на довольно сложном устаревшем коде, нелегко выделить его элементы, пока я не устраню проблему, поэтому мне действительно нужно надежное средство для ее преодоления.
Если я модифицирую код дочернего процесса для немедленного запуска отладки при запуске, он приглашает меня подключить отладчик, но не может завершить вложение, с сообщением, которое указывает, что The Just-in-time debugger does not have permission to debug the process
.
Я также видел этот вопрос и попытался реализовать это предлагаемое решение (которое выглядит действительно многообещающим) но он не работает в моем сценарии. Вместо запуска отладки перед запуском приложения он ничего не делает - нигде отладчик или приложение не запускаются, а диалог приглашения отладки не отображается. Тем не менее, я подтвердил, что этот метод работает в моей среде (используя его для запуска Notepad.exe), поэтому есть что-то в отношении моего приложения или того, как я запускаю его, что вызывает проблему.
Я рад поэкспериментировать и поделиться более подробными сведениями о результатах своих тестов, если у кого есть какие-либо предложения.
Большое спасибо за ваши идеи,
Тим