CLR \ CLI Com Oggetto Out of process Server
Domanda
Come si registra un oggetto COM scritto in Managed C ++ come SingleUse? Il regasm non sembra avere l'opzione. Immagino che possa essere semplice come definire un attributo in AssemblyInfo.cpp ma non riesco a trovarlo.
Ho scritto un file EXE ActiveX VB6 e funziona come voglio io, ovvero ogni richiesta di un'interfaccia crea un nuovo server in esecuzione.
Devo ricorrere al wrapping della mia COM C ++ gestita in VB6? Deve esserci un modo più semplice.
Soluzione
Sembra che i componenti serviti contengano la chiave del mio problema.
http://oreilly.com/catalog/comdotnetsvs/chapter/ch10.html
Una volta derivato da ServicedComponent nello spazio dei nomi System.EnterpriseServices, eseguo un regsvcs sulla dll e quindi modifica il pooling in dcomcnfg in modo che sia maggiore di uno: tutto funziona. Un altro problema è che il componente Managed C ++ in fase di registrazione sia compilato con / clr: pure non solo / clr. Devo ancora completare il progetto, ma i progetti di esempio che ho costruito sulla strada indicano che dovrebbe funzionare in questo modo. Penso che avvolgerò la mia soluzione C ++ gestita in un assembly C # ...
Ora che ho quasi finito il progetto un'altra cosa ... Devi essere su un Server O \ S per far funzionare il pool.
Grazie per la tua guida ...
Altri suggerimenti
Come utilizzare istanze singole o multiple di un oggetto OLE in MFC usando Visual C ++
Questo potrebbe darti alcuni indizi:
Utilizzo dei controlli gestiti come controlli ActiveX
http://blogs.msdn.com/andreww/archive/2008/11/24/using-managed-controls-as-activex-controls.aspx