Ответ 1
Я обнаружил, что порой вам может потребоваться "Запуск от имени администратора". Если вы устанавливаете из командной строки, вам может потребоваться запустить ее с помощью "Запуск от имени администратора".
Я создал сервис окна, и для его установки я создал проект развертывания и установил его. После установки я уставился на нее. Он успешно стартовал.
На следующий день я внесла некоторые изменения и переустановил и переустановил, но теперь его не установили.
Затем я подумал о своей проблеме с установщиком, создав пользовательский установщик для обслуживания, чтобы в любое время я мог обновить свой код.
Я создал его таким образом, если кому-то понадобится это для будущего.
public class MyInstaller : Installer
{
ServiceProcessInstaller spi;
ServiceInstaller si;
public MyInstaller()
{
spi = new ServiceProcessInstaller();
spi.Account = ServiceAccount.LocalSystem;
si = new ServiceInstaller();
si.StartType = ServiceStartMode.Manual;
si.ServiceName = "MyService";
si.DisplayName = "My Service";
si.Description = "service installed from command line";
this.Installers.Add(spi);
this.Installers.Add(si);
}
}
Я вызвал его из основного метода, проверив параметр args.
case "-i":
case "-install":
ti = new TransactedInstaller();
mi = new MyInstaller();
ti.Installers.Add(mi);
string logPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\install.log";
ctx = new InstallContext(logPath, cmdline);
ti.Context = ctx; //.Context ( ctx );
ti.Install(new Hashtable());
break;
Теперь, когда я пытаюсь установить. Я получил ошибку System.Security.SecurityException: источник не был найден, но некоторые или все журналы событий не могли быть найдены. Недостижимые журналы: безопасность.
Я google, и узнайте, что служба попытается получить доступ к журналу приложения при установке и записи журнала там.
Я не пишу ни одного журнала событий. У меня есть log4net для ведения журнала. Но по-прежнему его поведение по умолчанию.
Как преодолеть эту проблему сейчас? Его не устанавливают, даже у меня есть все разрешения.
Спасибо
Я обнаружил, что порой вам может потребоваться "Запуск от имени администратора". Если вы устанавливаете из командной строки, вам может потребоваться запустить ее с помощью "Запуск от имени администратора".
У меня могла быть отдельная первопричина для сообщения, но я исправил ее, изменив мою службу, чтобы работать как LocalSystem (это то, что я хочу в любом случае) вместо LocalService.