Freigeben über


Übersicht über Serviced Components

Eine Serviced Component ist eine Klasse, die in einer CLS-kompatiblen Sprache verfasst und direkt oder indirekt von der System.EnterpriseServices.ServicedComponent-Klasse abgeleitet ist. Auf diese Art konfigurierte Klassen werden über eine COM+-Anwendung bereitgestellt und können durch den EnterpriseServices-Namespace COM+-Dienste verwenden. Einen Überblick über die unterstützten Dienste finden Sie unter Zusammenfassung verfügbarer COM+-Dienste.

COM+-Dienste, z. B. automatische Transaktionen oder Queued Components, können über eine Deklaration konfiguriert werden. Auf Dienste bezogene Attribute werden zur Entwurfszeit angewendet, indem Instanzen von Klassen erzeugt werden, die diese Dienste verwenden. Einige Dienste werden konfiguriert, indem Methoden für Klassen bzw. auf diese Dienste bezogene Schnittstellen aufgerufen werden. Einige Dienste können auch von einem Objekt zum anderen übergehen. Beispielsweise kann ein Objekt, das aufgrund seiner Konfiguration eine Transaktion erfordert, diese Transaktion an ein zweites Objekt weitergeben, falls dieses die Transaktion ebenfalls unterstützt.

Im COM+-Katalog sind die Konfigurationsinformationen gespeichert, die bei der Implementierung einer Klasse verwendet werden. Zur Laufzeit wird durch COM+ eine Kontextdienstschicht erstellt, die auf den im Code angewendeten Attributen basiert. In der folgenden Abbildung wird eine automatische Transaktion gezeigt, die sich zwischen zwei von COM+ bereitgestellten, verwalteten Objekten bewegt.

COM+-Anwendung als Host für Serviced Components

Dienste können auch zwischen COM+-Objekten und .NET Framework-Objekten bewegt werden. Jede Umgebung steuert die Implementierung und Ausführung ihres systemeigenen Codes. COM+ stellt immer den Kontext des Objekts bereit.

So erstellen Sie eine Serviced Component

  1. Definieren Sie eine Klasse, die direkt oder indirekt von der ServicedComponent-Klasse abgeleitet ist. Beispielsweise wird durch folgenden Code sichergestellt, dass die Account-Klasse von einer COM+-Anwendung bereitgestellt wird.

    Imports System.EnterpriseServices
    Public Class Account 
    Inherits ServicedComponent
    Shared Sub Main()
    End Sub
    End Class
    [C#]
    using System.EnterpriseServices;
    public class Account : ServicedComponent
    {
       static void Main()
       {}
    }
    
  2. Durch den folgenden Code werden Dienstattribute auf eine Assembly, Klasse oder Methode angewendet.

    Imports System.EnterpriseServices
    <Transaction(TransactionOption.Required)> Public Class Account 
    Inherits ServicedComponent
       <AutoComplete()> Shared Sub Main()
       End Sub
    End Class
    [C#]
    using System.EnterpriseServices;
    [Transaction(TransactionOption.Required)]
    public class Account : ServicedComponent
    {
       [AutoComplete]
       static void Main() 
    {}
    }
    

    Hinweis   In .NET-Framework, Version 1.1, wird die COM+-Sicherheitskonfiguration standardmäßig aktiviert, wenn das ApplicationAccessControlAttribute-Attribut in der Assembly nicht vorhanden ist. Dies stellt eine Änderung dar gegenüber .NET Framework, Version 1.0.

  3. Das Beispiel wird wie folgt kompiliert:

    Makefile.bat

    vbc /t:exe /r:System.EnterpriseServices.dll Demo.vb
    [C#]
    csc /t:exe /r:System.EnterpriseServices.dll Demo.cs
    
  4. Die Weitergabe der Serviced Component-Anwendung erfolgt durch dynamische oder manuelle Registrierung der zugehörigen Assembly. Weitere Informationen dazu finden Sie unter Dynamisches Registrieren einer Assembly und Manuelles Registrieren einer Assembly.

Nach der Registrierung der Serviced Component können durch die Clients Instanzen der Komponente auf die gleiche Art erstellt werden wie Instanzen jeder anderen Komponente. Ein vollständiges Beispiel dazu finden Sie unter Beispiel für eine Serviced Component.

Hinweis   Auf einer Windows 2000-Plattform wird für die von Ihnen erstellte Komponente durch COM+ stets die aktuellste Version der Common Language Runtime geladen. Wenn sowohl .NET Framework, Version 1.0, als auch .NET Framework, Version 1.1, auf einem Computer installiert sind, wird daher immer .NET Framework, Version 1.1, geladen. Als Problemumgehung kann eine COM+-Datei dllhost.exe.configuration erstellt werden, mit der Sie alle Anwendungen auf eine bestimmte Version von .NET Framework festlegen können. Auf Windows XP- und Windows Server 2003-Plattformen kann die Einstellung für das Anwendungsstammverzeichnis verwendet werden, um COM+ für die Konfigurationsdatei auf ein entsprechendes Verzeichnis zu fokussieren.

Siehe auch

Schreiben von Serviced Components | Anwenden von Attributen zum Konfigurieren von Diensten | Registrieren von Serviced Components | Beispiel für eine Serviced Component | Zusammenfassung verfügbarer COM+-Dienste | System.EnterpriseServices.ServicedComponent