Utworzono usługę okna i zainstalowałem ją. Stworzyłem projekt wdrożenia i zainstalowałem go. Po instalacji patrzyłem na to. Zaczęło się pomyślnie.błąd podczas instalowania usługi okna System.Security.SecurityException
Następnego dnia dokonałem pewnych modyfikacji, i przebudowałem i ponownie zainstalowałem, ale teraz nie instaluję.
Potem myślałem, że problem z instalatorem, pozwala utworzyć niestandardowy instalator dla usługi, aby w każdej chwili mogę zaktualizować mój kod.
Stworzyłem to w ten sposób, jeśli ktoś potrzebuje tego na przyszłość.
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);
}
}
Nazwałem ją z głównej metody, sprawdzając parametry 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;
Teraz, kiedy próbuję zainstalować. Odebrałem błąd System.Security.SecurityException: Nie znaleziono źródła, ale niektóre lub wszystkie dzienniki zdarzeń nie mogły zostać przeszukane. Niedostępne logi: Bezpieczeństwo.
I google to, a usługa, aby się dowiedzieć, spróbuje uzyskać dostęp do dziennika aplikacji podczas instalacji i zapisu dziennika tam.
Nie piszę żadnego dziennika zdarzeń. Mam log4net do logowania. Ale nadal jest to domyślne zachowanie.
Jak rozwiązać ten problem teraz? Nie jest instalowany, nawet ja mam wszystkie uprawnienia.
Dzięki
Zrobiłem to za pomocą cntrl + shift + enter w uruchomieniu.Potem znowu manaully kliknąłem prawym przyciskiem myszy i uruchomiłem jako administrator, a to działało na człowieka. dzięki, jakie głupie błędy robię. ale chciałbym wiedzieć, jak poprawić start/stop wydajność usługi okna. – sunder
@dender: wydajność startu/stopu będzie miała * lot * do wykonania usługi. "Start" powinien być w porządku, ponieważ zazwyczaj można zakręcić nowy wątek, który wykonuje pracę. Aby się zatrzymać, potrzebujesz szybkiego sposobu na zatrzymanie wątku. Więc nie ma ogólnego sposobu na poprawę wydajności. –
Utworzono plik wsadowy (.BAT), aby zainstalować usługę, a ja działałem jako administrator, ale nie działało. Następnie uruchomiłem wiersz poleceń jako administrator i zainstalowałem usługę bez pliku BAT, po prostu wpisując nazwę pliku EXE. Nie jestem pewien, dlaczego tak się stało, ale może mogłoby pomóc innym. Myślę, że może to być związane z faktem, że uruchamianie pliku BAT jako administrator nie wykonuje kodu, który piszesz jako administrator, tylko plik BAT. –