Differenza tra “tradizionale” COM e COM + (in Component Services)
-
23-10-2019 - |
Domanda
Tra l'altro "tradizionale" intendo la registrazione della DLL nel Registro di sistema.
Sembra che ci sia un altro metodo per impostare esso andando a MMC-> Component Services-> applicazioni COM + e aggiunta del file .tlb
.
Ho una libreria COM che supporta entrambi i metodi. Quando si installa, si registra nel Registro di sistema come un componente COM e funziona benissimo. Tuttavia, quando ho aggiunto il file .tlb
utilizzando il metodo Servizi componenti, il comportamento sembra essere diverso e inizia a dare gli errori.
Ho il sospetto che abbia qualcosa a che fare con il marshalling e inter-processo di trasferimento oggetto? (Scusate, io sono davvero un noob nell'area COM)
qualcuno mi può puntare a una buona risorsa per cancellare la mia comprensione?
Soluzione
COM + (Servizi componenti) fornisce un sacco di infrastrutture, fuori dalla scatola; per esempio COM + fornisce delle transazioni, la sicurezza, il pool di oggetti e di alcuni altri servizi.
Quando si registra un componente COM in COM + verrà eseguito "dal processo"; in questo modo si sono garantiti per avere un proxy tra il server COM e dei suoi clienti.
Il posto migliore che posso pensare per imparare di più su COM + è il sito ufficiale MS: http://msdn.microsoft.com/en-us/library/ms685978 (VS.85) aspx
Altri suggerimenti
Sono d'accordo con il post precedente.
Una cosa da aggiungere: in realtà la registrazione del (file tlb) libreria di tipo è normale per COM così, non solo per COM +. La libreria dei tipi viene generato automaticamente dal compilatore IDL. Esso contiene una descrizione delle interfacce e oggetti.
Così che si può "importare" il componente COM in qualche progetto, e la definizione delle interfacce e gli oggetti sono visibili.