 |
Coders' city Nasza pasja to programowanie!
|
| Zobacz poprzedni temat :: Zobacz następny temat |
| Autor |
Wiadomość |
mikmas

Dołączył: 26 Maj 2005 Posty: 5617 Skąd: From Alex Stadt
|
Wysłany: Pią Lut 10, 2012 11:53 am Temat postu: [C#] Usługa nie wyświetla się na liście usług |
|
|
Napisałem usługę w c#, ale po stworzeniu deployera wg tego tutoriala sekcja "To create the installers for your service" usługa nie wyświetla się w services.msc. Instalacja przeszła niby poprawnie. Co to może być? Wiem, że mało informacji, ale za bardzo nie wiem, jakie są potrzebne (to mój pierwszy taki projekt) _________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d- s---:--->+:+ a-->--- C++(+++) U-- P+ L-- E-- W++ N+ o-- K- w++(+++) O--- M-(--) V-- PS PE++ Y PGP- t 5 X++ R tv- b+ DI- D+++(++++) G++ e h* r+ y? ------END GEEK CODE BLOCK------ Alternatywny komunikator GG |
|
| Powrót do góry |
|
 |
|
|
izaw

Dołączył: 12 Wrz 2008 Posty: 2003 Skąd: Łódź
|
Wysłany: Pią Lut 10, 2012 12:41 pm Temat postu: |
|
|
1. Czy ona istnieje w aplecie Usługi:
| Kod: |  %SystemRoot%\system32\services.msc /s
|
2. Pokaż dane z rejestru na temat swojej usługi.
| Kod: |  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\twoja_usluga]
|
3. Czy program odpowiedzialny za usługę można uruchomić ręcznie z pliku? 4. Uprawnienia programu i wymagane dla usługi. Czy nie za małe? _________________ Program nie robi tego co chce programista, ale to co programista zaprogramował |
|
| Powrót do góry |
|
 |
mikmas

Dołączył: 26 Maj 2005 Posty: 5617 Skąd: From Alex Stadt
|
Wysłany: Pią Lut 10, 2012 2:41 pm Temat postu: |
|
|
Sry, że piszę pod własnym postem, jednak problem nie jest ściśle związany z poprzednim, więc robię taki "nowy-stary" wątek w ten sposób :D. Jeżeli nie jest to dobre - napiszcie, złączę je.
Oczywiście ja dałem ciała, nie zrobiłem jednak DOKŁADNIE wg instrukcji. Teraz już jest ok. Jednak usługa nie startuje. Przynajmniej tak mi się wydaje, bo jedyny "kontakt ze światem" jest dzięki plikom. Teraz pytania: 1. Czy usługa ma dostęp w ogóle do plików? Chciałem utworzyć plik C:\debug.log (jedyne co dopisałem to "C:\\" przed nazwą pliku, bo przedtem tworzył teoretycznie w ścieżce względnej, która może być inna niż exeka) i system zaraz po uruchomieniu usługi mówił, że ta popełniła samobójstwo (wyłączyła się zaraz po starcie) - śmierdzi mi tu jakimś unhandled exception. 2. Jaka jest ścieżka względna uruchamianych usług? Inna niż miejsca, gdzie jest zainstalowana usługa?
EDIT! Zmiana zeznań: debug.log nie ma chyba na to wplywu. Można z jakiś logów albo czegoś odczytać, czemu usługa się wyrypuje? _________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d- s---:--->+:+ a-->--- C++(+++) U-- P+ L-- E-- W++ N+ o-- K- w++(+++) O--- M-(--) V-- PS PE++ Y PGP- t 5 X++ R tv- b+ DI- D+++(++++) G++ e h* r+ y? ------END GEEK CODE BLOCK------ Alternatywny komunikator GG |
|
| Powrót do góry |
|
 |
izaw

Dołączył: 12 Wrz 2008 Posty: 2003 Skąd: Łódź
|
Wysłany: Pią Lut 10, 2012 2:53 pm Temat postu: |
|
|
Systemy od Visty mają chroniony katalog główny partycji systemowej. Wybierz sobie inną ścieżkę, np. dla próby w katalogu temp. Tam dostęp jest zawsze. _________________ Program nie robi tego co chce programista, ale to co programista zaprogramował |
|
| Powrót do góry |
|
 |
hejmus
Dołączył: 26 Maj 2005 Posty: 2135
|
Wysłany: Pią Lut 10, 2012 4:58 pm Temat postu: |
|
|
A debugger naprawdę nic ciekawego nie powiedział? _________________ kompilacja Gentoo na Pentium MMX 233MHz - niezapomniane przeżycia ;) |
|
| Powrót do góry |
|
 |
hobson
Dołączył: 13 Sie 2007 Posty: 410 Skąd: Trójmiasto
|
Wysłany: Pią Lut 10, 2012 5:34 pm Temat postu: |
|
|
Polecam narzędzia typu Process Explorer i Process Monitor z zestawu SysInternals Suite, do pobrania ze strony Microsoftu. Dają dużo ciekawych informacji nt. uruchomionych procesów i tego, co, skąd, jak i kiedy próbują czytać, pisać, otworzyć, sięgnąć.
Pamiętaj, ze usługi są w niektórych aspektach mocno ograniczone (chyba, że działają na local account, czego należy unikać) - nie mają dostępu do pulpitu (nie mogą więc tworzyć okien, wyświetlać komunikatów, itp), mają inny zestaw uprawnień, niż zalogowany użytkownik (bo zazwyczaj nie są uruchamiane przez zalogowanego użytkownika) i inne. Komunikaty zwykle zapisują do dziennika zdarzeń (dostępnego w aplecie 'zarządzanie komputerem" w panelu sterowania), chociaż ciężko jest stamtąd wychwycić coś czytelnego (poza kodem błędu). |
|
| Powrót do góry |
|
 |
mikmas

Dołączył: 26 Maj 2005 Posty: 5617 Skąd: From Alex Stadt
|
Wysłany: Pon Lut 13, 2012 8:41 am Temat postu: |
|
|
@izaw, hobson: Dzięki! Jakoś udało się mi odpalić ładnie ustawiając ścieżkę na C:\temp :P
@hejmus: Nie wiem, bo nie wiem, jak go odpalić :D:D:D
Teraz powstaje pozornie trywialny problem - gdzie umieścić pliki konfiguracyjne? Jest tam prosty xmlek z mega ważnymi ustawieniami. Spróbowałem wyciągnąć ścieżkę bezwzględną do pliku (w program files), ale program się sypie. Może nie ma uprawnień, może źle to robię?
| Kod: |  static Config()
 {
 appPath=Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName );
 }
|
A nie wiem, jak zdebugować usługę, więc nawet nie wiem, co tak naprawdę jest w appPath.
Rozwiązanie "musi być folder xxxx na dysku C:, gdzie będą ustawienia" jest mało profesjonalnym rozwiązaniem :/. _________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d- s---:--->+:+ a-->--- C++(+++) U-- P+ L-- E-- W++ N+ o-- K- w++(+++) O--- M-(--) V-- PS PE++ Y PGP- t 5 X++ R tv- b+ DI- D+++(++++) G++ e h* r+ y? ------END GEEK CODE BLOCK------ Alternatywny komunikator GG |
|
| Powrót do góry |
|
 |
biernik

Dołączył: 06 Wrz 2008 Posty: 1024 Skąd: 63°59'37''N 22°37'58''W
|
Wysłany: Pon Lut 13, 2012 8:55 am Temat postu: |
|
|
Ja w ten sposób dostaję katalog z moim servicem:
| Kod: |  Directory.GetParent(Assembly.GetEntryAssembly().Location).FullName;
|
//edit
Co do debugowania - nie pamiętam już, ale czy nie wystarczy "normalnie" ustawić płapkę i walnąć F5? Jeżeli nie to próbowałeś przez "attach to process"? Nie chce mi się sprawdzać ale pamiętam, że debugowanie usług nie było jakieś szczególnie magiczne.
pzdr. _________________ I like cheese. |
|
| Powrót do góry |
|
 |
hobson
Dołączył: 13 Sie 2007 Posty: 410 Skąd: Trójmiasto
|
Wysłany: Pon Lut 13, 2012 10:09 am Temat postu: |
|
|
| mikmas napisał: | Teraz powstaje pozornie trywialny problem - gdzie umieścić pliki konfiguracyjne?
|
Może rejestr byłby dobrym miejscem do przechowywania konfiguracji? Np. podklucz w HKLM\Software?
| mikmas napisał: | Może nie ma uprawnień, może źle to robię?
|
Gdybyś sprawdził kod błędu, np. zalogował go gdzieś, to powinieneś chociaż mniej więcej wiedzieć, jaki jest problem.
| mikmas napisał: | A nie wiem, jak zdebugować usługę
|
Wersja express środowiska Visual Studio jest niestety pozbawiona opcji 'Attach to process...', która jest bardzo przydatna w takich sytuacjach :(
| mikmas napisał: | | więc nawet nie wiem, co tak naprawdę jest w appPath. |
To możesz wywnioskować sprawdzając w Process Explorerze ścieżki do uruchomionych procesów i modułów. Jeśli twoja usługa jest zawarta w procesie hostującym, jak svchost, to jego katalogiem roboczym będzie katalog systemowy. Jeśli w czasie instalacji wskazałeś, że ma być uruchamiana jako samodzielny proces, to powinna być uruchomiona z katalogu, w którym została zainstalowana. Może rzeczywiście lepsze będzie sprawdzenie ścieżki do modułu albo assembly. |
|
| Powrót do góry |
|
 |
mikmas

Dołączył: 26 Maj 2005 Posty: 5617 Skąd: From Alex Stadt
|
Wysłany: Pon Lut 13, 2012 10:18 am Temat postu: |
|
|
Czyli aby zdebuggować trza attach to process i do procesu services.exe? OK, popróbuję. Dzięki wielkie za pomoc :) _________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d- s---:--->+:+ a-->--- C++(+++) U-- P+ L-- E-- W++ N+ o-- K- w++(+++) O--- M-(--) V-- PS PE++ Y PGP- t 5 X++ R tv- b+ DI- D+++(++++) G++ e h* r+ y? ------END GEEK CODE BLOCK------ Alternatywny komunikator GG |
|
| Powrót do góry |
|
 |
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Możesz dodawać załączniki na tym forum Możesz pobierać pliki z tego forum
|
 Debug: strone wygenerowano w 0.13878 sekund, zapytan = 7
|