2013-02-11 12 views
5

Yerel bir COM sunucusunu ortak bir hesap altında çalışacak şekilde nasıl zorlarsınız (yerel sistem iyi olurdu)? RunAs belgeleri, yalnızca DCOM için olduğu gibi görünür ve yerel olarak çalışmaz.İşlem sunucusundan COM işlemek birden çok örneğini başlatır

Karşılaştığım sorun, CoCreateInstance'ımın farklı masaüstü bilgisayarlarda çalışan işlemlerden çağrılması ve bu senaryo altında SCM'nin her bir masaüstü için yeni bir sunucu başlatmak istemesidir, sadece tek bir instanse istiyorum - tasarlandığı gibi!

+0

Bu daha iyi uyum sağlar [ServerFault?] (Http://serverfault.com/) – Piccolo

+0

DCOM yerel sunucular için de kullanılır. 'DCOM Config' kullanarak ve' Identity' değiştirerek denediniz mi? – sharptooth

+0

Elbette farketmez. Görev Yöneticisi'nde SİSTEM'i görmeyi beklerdim ama komut satırından koştuğumda hala kimliğim – user1371314

cevap

0

Tanımladığınız şey bir sistem hizmetidir, bir COM sunucusu değildir. Bir COM sunucusu, "oturum 0" (hizmetler) veya herhangi bir tek oturum altında değil, hangi oturumda çalışırsa çalışacak şekilde tasarlanmıştır. Yalnızca 1 seansın altında çalışan ve diğer her şeye küresel erişimi olan bir şeye ihtiyacınız varsa, bir COM sunucusu değil Windows Hizmeti kullanmalısınız.

Başka bir nedenden dolayı COM sunucu boyutuna ihtiyacınız varsa, ancak kaynakları global olarak paylaşmak istiyorsanız veya hala yapmanız gereken her şeyi kontrol eden "bir işlem" var ... COM sunucunuzun servisinizle iletişim kurmasını sağlayabilirsiniz. Tercih ettiğiniz IPC yöntemi.

Ayrıca, yorumlarınızda "komut satırından çalıştırdığımda" diyorsunuz - komut satırından bir EXE çalıştırıyorsanız, COM sunucusu olarak kayıtlı olup olmadığı önemli değil, diğer herhangi bir EXE/app gibi çalışır - hangi oturumda olursanız olun, çalıştırdığınız her kullanıcı olarak çalışır. Bir COM sunucusu olarak bir EXE kaydedilmesi sadece diğer işlemlerin bu EXE'i çalıştırmasına ve OLE üzerinden iletişim kurmasına izin verir./COM, ancak EXE hala normal bir uygulama olarak da çalıştırabilirsiniz. Örneğin, Microsoft Word ve Outlook, COM sunucularıdır. Yani, outlook.exe bir COM sunucusu, ancak tabii ki normal bir uygulama olarak da çalıştırabilirsiniz.

+0

altında çalışır Teşekkürler, anladım. Zaten bir Windows Hizmetine dönüştürdüm ve bu mükemmel çalışıyor. – user1371314