Freigeben über


COM+-Dienste ohne Komponentenkonzepte

COM+ 1.5 ermöglicht die Verwendung von COM+-Diensten ohne Komponenten. Dadurch werden die Leistungskosten bei der Verwendung von COM+-Diensten in einer Umgebung, in der keine Komponenten verwendet werden, erheblich reduziert, und es beseitigt auch die Komplexität der Verwendung dieser Dienste. Ab IIS 6.0 nutzen IIS und ASP die Verwendung von COM+-Diensten ohne Komponenten.

COM+-Dienste wurden ursprünglich für die Verwendung mit COM+-Komponenten entwickelt. Einige Programmierumgebungen sind jedoch nicht komponentenbasiert und erfordern daher einen erheblichen Mehraufwand für die Verwendung von COM+-Diensten. Beispielsweise musste IIS vor der Veröffentlichung von COM+ 1.5 Shim-Objekte nur erstellen, um COM+-Transaktionsdienste auf ASP-Seiten verwenden zu können. Die Beim Erstellen dieser Objekte anfallenden Leistungskosten umfassen das Speichern der Konfigurationsdaten sowohl in der IIS-Metabasis als auch in der COM+-Registrierungsdatenbank (RegDB) sowie die zusätzliche Kommunikation zwischen der IIS-Metabasis und der COM+ RegDB, die für die effektive Verwaltung der Konfigurationsdaten erforderlich ist.

Wenn IIS einen zweiten COM+-Dienst verwenden musste, z. B. die Synchronisierung, musste dazu ein völlig anderes Shim-Objekt erstellt werden. Um sowohl COM+-Transaktionen als auch die Synchronisierung zu verwenden, wäre ein dritter Shim-Objekttyp erforderlich. Die Komplexität dieses Ansatzes wird auf O(n2) skaliert, was die Implementierung neuer Dienste extrem erschwert.

Mit der Einführung von COM+-Diensten ohne Komponenten werden die benötigten Dienste über ein Objekt konfiguriert, das aus der -Klasse instanziiert wird. Die CServiceConfig-Klasse implementiert die Schnittstellen, die zum Konfigurieren der verschiedenen Dienste erforderlich sind, und bietet gleichzeitig die Flexibilität, mehrere Dienste gleichzeitig zu unterstützen und neue Dienste in Zukunft zu unterstützen.

Die konfigurierten Dienste können dann über zwei verschiedene Mechanismen verwendet werden: Sie können über die CoCreateActivity-Funktion verwendet werden, die die Dienste auf alle Über die Aktivität übermittelte Arbeit anwendet, die von der Funktion erstellt wird, und sie können auch durch Einbetten der Arbeit verwendet werden, die die Dienste zwischen Aufrufen der Funktionen CoEnterServiceDomain und CoLeaveServiceDomain verwendet. Keine dieser Funktionen erfordert die Erstellung neuer Komponenten, um die COM+-Dienste nutzen zu können; nur das CServiceConfig-Objekt wird benötigt.

COM+-Dienste ohne Komponententasks