2013-02-11 14 views
5

Jak zmusić lokalny serwer COM do działania pod wspólnym kontem (system lokalny byłby dobry)? Dokumentacja RunAs wydaje się być tylko dla DCOM i nie działa lokalnie.COM z serwera procesów uruchamia wiele instancji

Problem polega na tym, że moja CoCreateInstance jest wywoływana z procesów działających na różnych komputerach, a SCM w tym scenariuszu chce uruchomić nowy serwer dla każdego komputera, chcę tylko pojedynczy serwer - zgodnie z projektem!

+0

Czy to lepiej pasuje do [ServerFault?] (Http://serverfault.com/) – Piccolo

+0

DCOM jest również używany dla serwerów lokalnych. Czy próbowałeś użyć 'DCOM Config' i zmienić' Identity'? – sharptooth

+0

Oczywiście, bez żadnej różnicy. Spodziewam się, że w Menedżerze zadań pojawi się SYSTEM, ale po uruchomieniu z wiersza poleceń nadal działa pod moim ID – user1371314

Odpowiedz

0

To, co opisujesz, to usługa systemowa, a nie serwer COM. Serwer COM jest przeznaczony do uruchamiania w dowolnej sesji, która go uruchamia, a nie w ramach "sesji 0" (usług) lub pojedynczej sesji. Jeśli potrzebujesz czegoś, co działa tylko w ramach jednej sesji i ma globalny dostęp do wszystkiego innego, powinieneś użyć usługi Windows, a nie serwera COM.

Jeśli potrzebujesz aspektu serwera COM z innego powodu, ale chcesz udostępniać zasoby globalnie lub nadal masz "jeden proces", który kontroluje wszystko, co musisz zrobić ... możesz komunikować się z serwerem COM z usługą za pomocą dowolnego Preferowana metoda IPC.

Również w komentarzach mówisz "kiedy uruchamiam z wiersza poleceń" - jeśli uruchomisz plik EXE z wiersza poleceń, nie ma znaczenia, czy jest on zarejestrowany jako serwer COM, czy nie, działa jak każdy inny EXE/aplikacja - co oznacza, że ​​działa jako użytkownik, którym go uruchomisz, w dowolnej sesji. Rejestrowanie EXE jako serwera COM pozwala innym procesom na uruchamianie tego EXE i komunikowanie się z nim za pośrednictwem OLE/COM, ale EXE może nadal działać jako normalna aplikacja. Na przykład Microsoft Word i Outlook są zarówno serwerami COM. Oznacza to, że outlook.exe jest serwerem COM, ale oczywiście można go również uruchomić jako zwykłą aplikację.

+0

Dzięki, rozumiem. Przekształciłem się już w usługę Windows i działa to doskonale. – user1371314

Powiązane problemy