Я создал сервис окна, и для его установки я создал свой проект развертывания и установил его. После установки я уставился на нее. Он успешно начался.ошибка при установке оконного сервиса System.Security.SecurityException
На следующий день я внесла некоторые изменения и переустановил и переустановил, но теперь его не установили.
Затем я подумал о своей проблеме с установщиком, создав пользовательский установщик для обслуживания, чтобы в любое время я мог обновлять свой код.
Я создал его таким образом, если кому-то понадобится это для будущего.
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;
Теперь, когда я пытаюсь установить. I recevied error System.Security.SecurityException: Источник не найден, но некоторые или все журналы событий не могут быть найдены. Недостижимые журналы: безопасность.
Я прихожу к нему и узнаю, что служба попытается получить доступ к журналу приложения при установке и записи журнала там.
Я не пишу ни одного журнала событий. У меня есть log4net для ведения журнала. Но все-таки его поведение по умолчанию.
Как преодолеть эту проблему сейчас? Его не устанавливают, даже у меня есть все разрешения.
Благодаря
Я сделал это, используя cntrl + shift + enter in run.Затем снова я manaully правой кнопкой мыши и запускаю как администратор, и это сработало человеком. спасибо, какие глупые ошибки я делаю. , но я хотел бы знать, как улучшить начальную и конечную работу службы окна. – sunder
@sunder: при запуске/остановке производительность будет * много *, чтобы делать то, что делает ваш сервис. «Пуск» должен быть ОК, так как обычно вы разворачиваете новый поток, который выполняет эту работу. Для остановки вам понадобится быстрый способ остановить то, что происходит в потоке. Таким образом, нет никакого общего способа повысить производительность. –
Я создал командный файл (.BAT) для установки службы, и я запускал пакет как администратор, но он не работал. Затем я запускаю командную строку как администратор и устанавливаю службу без BAT-файла, просто набрав имя EXE-файла -install. Я не знаю, почему это произошло, но, возможно, это может помочь другим. Я думаю, что это может быть связано с тем, что запуск BAT-файла в качестве администратора не выполняет код, который вы пишете там как admin, просто файл BAT. –