Erstellen einer DCOM-Client-/Serveranwendung mithilfe von Visual Basic

In diesem Artikel wird beschrieben, wie Sie mithilfe von Visual Basic eine DCOM-Client-/Serveranwendung (Distributed Component Object Model) erstellen, packen und bereitstellen.

Ursprüngliche Produktversion: Visual Basic
Ursprüngliche KB-Nummer: 266717

Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie eine DCOM-Client-/Serveranwendung mithilfe von Visual Basic erstellen, packen und bereitstellen. Zum Erstellen einer DCOM-Client-/Serveranwendung benötigen Sie die Enterprise Edition von Visual Basic. Microsoft geht davon aus, dass der Leser bereits mit dem Erstellen von Client-/Serveranwendungen vertraut ist, die auf demselben Computer ausgeführt werden.

Weitere Informationen

Sie müssen Ihren Code nicht ändern, damit eine Clientanwendung einen Remoteserver mithilfe von DCOM instanziieren kann. Der Unterschied besteht darin, wie Sie den Client packen und bereitstellen. Darüber hinaus gibt es einige Sicherheitseinstellungen, die Sie nach der Installation des Clients und des Servers vornehmen müssen. Sie können diese Einstellungen mithilfe eines Hilfsprogramms namens Dcomcnfg vornehmen.

Die folgenden Schritte zeigen, wie Sie eine Client-/Serveranwendung verteilen und konfigurieren. Benennen Sie den Server DCOMDemo_Svr, und benennen Sie den Client DCOMDemo_Cli. Erstellen Sie jeweils einen separaten Ordner. Für die Zwecke dieses Artikels rufen Sie diese Ordner c:\DCOMDemo\Server and c:\DCOMDemo\Clientauf.

Erstellen des Servers

  1. Starten Sie ein neues Visual Basic-Projekt. Wählen Sie im Dialogfeld Neues Projekt die Option ActiveX EXE aus, und klicken Sie dann auf Öffnen. Class1 wird standardmäßig erstellt.

  2. Fügen Sie dem Modul Class1 den folgenden Code hinzu:

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. Klicken Sie im Menü Projekt auf die Option Projekteigenschaften , und wählen Sie dann die Registerkarte Allgemein aus.

  4. Geben Sie im Feld ProjektnameDCOMDemo_Svr ein.

  5. Geben Sie im Feld ProjektbeschreibungDCOMDemo_Svr - Server ein. Aktivieren Sie die Option Unbeaufsichtigte Ausführung .

    Hinweis

    Diese Option sollte immer auf Servern aktiviert werden, die über keine Benutzeroberfläche verfügen, um sicherzustellen, dass keine Dialogfelder irgendeinen Typs angezeigt werden, während der Server ausgeführt wird. Wenn Sie eine Art von Benutzerinteraktion haben, während Ihr Server unter einer Identität ausgeführt wird, die nicht der interaktive Benutzer ist, scheint Ihr Server möglicherweise zu hängen.

  6. Wählen Sie die Registerkarte Komponente aus, und aktivieren Sie die Option Remoteserverdateien .

    Hinweis

    Wenn Sie diese Option aktivieren, generiert der Visual Basic-Compiler die VBR- und TLB-Dateien, die zum Packen der Clientanwendungen erforderlich sind, die diesen Server verwenden. Diese Dateien enthalten Registrierungseinträge, die auf dem Clientcomputer enthalten sein müssen.

  7. Schließen Sie das Dialogfeld Projekteigenschaften .

  8. Wählen Sie im Menü Datei die Option Speichern unter aus, und speichern Sie dieses Projekt dann im c:\DCOMDemo\Server folder.

  9. Wählen Sie im Menü Datei die Option DCOMDemo_Svr erstellen aus, und kompilieren Sie den Server.

  10. Wählen Sie im Menü Projekt die Option Projekteigenschaften und dann die Registerkarte Komponente aus.

  11. Wählen Sie auf der Registerkarte Komponentedie Option Versionskompatibilität aus, wählen Sie die Option Binärkompatibilität aus, und machen Sie die Projektbinärdatei mit der ausführbaren Datei des Servers kompatibel, die Sie erstellt haben (DCOMDemo_Svr.exe). Wenn Sie diese Option auswählen, stellen Sie sicher, dass alle GUIDs gleich bleiben, wenn Sie den Server neu kompilieren.

Erstellen des Clients

  1. Wählen Sie im Menü Datei die Option Neues Projekt aus, wählen Sie Standard EXE aus, und klicken Sie dann auf OK. Form1 wird standardmäßig erstellt.

  2. Klicken Sie im Menü Projekt auf die Option Projekteigenschaften , und wählen Sie dann die Registerkarte Allgemein aus.

  3. Geben Sie im Feld ProjektnameDCOMDemo_Cli ein.

  4. Geben Sie im Feld ProjektbeschreibungDCOMDemo_Cli Projekt – Client ein.

  5. Wählen Sie im Menü Projekt die Option Verweise aus. Wählen Sie in der Liste der verfügbaren Verweise DCOMDemo_Svr – Server aus.

  6. Platzieren Sie eine Befehlsschaltfläche auf Form1, und ändern Sie die Untertitel der Schaltfläche in Ausführen.

  7. Platzieren Sie den folgenden Code im Click-Ereignis der Schaltfläche:

    Dim MyObj As DCOMDemo_Svr.Class1
    
    On Error GoTo err1
    
    Set MyObj = CreateObject("DCOMDemo_Svr.Class1")
    MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time
    
    Exit Sub
    err1:
    MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description
    
  8. Wählen Sie im Menü Datei die Option Speichern unter aus, und speichern Sie das Projekt dann im Ordner c:\DCOMDemo\Clientdes Clients.

  9. Drücken Sie F5 , um den Client in der IDE auszuführen und zu testen.

  10. Wählen Sie im Menü Datei die Option DCOMDemo_Cli erstellen aus, um den Client zu kompilieren, und schließen Sie dann Visual Basic.

Packen des Servers

Verwenden Sie den Paket- und Bereitstellungs-Assistenten, um Ihren Server wie gewohnt für die Verteilung zu verpacken. Der Server wird von einem Remoteclient mithilfe von DCOM instanziiert. Beim Erstellen des Pakets für Ihren Server erhalten Sie ein Dialogfeld, in dem Sie gefragt werden, ob dieser Server als Remoteautomatisierungsserver verwendet wird und ob Sie zu diesem Zweck Supportdateien einschließen möchten. Klicken Sie einfach auf die Schaltfläche Nein , da DCOM keine Remoteautomatisierung ist. Die Remoteautomatisierung ist eine ältere Technologie, die durch DCOM ersetzt wurde.

Packen des Clients

Beim Packen des Clients müssen einige bestimmte Schritte ausgeführt werden, da der Server nicht auf demselben Computer wie der Client ausgeführt wird. Die am Clientpaket vorgenommenen Änderungen stellen sicher, dass nur die Typbibliothek (TLB-Datei) installiert ist und einige zusätzliche Registrierungseinträge anstelle der ausführbaren Datei des Servers enthalten sind, was auf dem Computer des Clients nicht erforderlich ist, da sie dort nicht ausgeführt wird.

Packen Sie den Client mit den folgenden Schritten:

  1. Starten Sie den Paket- und Bereitstellungs-Assistenten, und wählen Sie dann das Projekt des Clients aus.

  2. Klicken Sie auf die Schaltfläche Paket . Wählen Sie im Dialogfeld Pakettyp die Option Standardsetuppaket aus, und klicken Sie dann auf Weiter.

  3. Wählen Sie im Dialogfeld Paketordner den Ordner aus, in dem das Paket gespeichert werden soll, und klicken Sie dann auf Weiter. In diesem Fall lautet dies c:\DCOMDemo\Client\Package.

    Hinweis

    Möglicherweise wird ein Dialogfeld mit dem Hinweis angezeigt, dass keine Abhängigkeitsinformationen für den Server vorhanden sind. Klicken Sie auf OK , da dieser Server über keine Abhängigkeiten verfügt.

    Sie sollten sich jetzt im Dialogfeld Eingeschlossene Dateien befinden.

  4. Deaktivieren Sie die ausführbare Datei des Servers DCOMDemo_Svr.exe, da Sie die ausführbare Datei des Servers nicht verteilen möchten, und klicken Sie dann auf die Schaltfläche Hinzufügen.

  5. Ändern Sie das Kombinationsfeld Dateien vom Typ in Remoteserverdateien (*.vbr).

  6. Zeigen Sie auf den Ordner, in dem Sich das Projekt Ihres Servers befindet (in diesem Fall c:\DCOMDemo\Server), und wählen Sie die zugehörige VBR-Datei DCOMDemo_Svr.VBR aus. Klicken Sie auf Öffnen, und das Dialogfeld Datei hinzufügen wird geschlossen.

    Hinweis

    Diese beiden Dateien sind enthalten, DCOMDemo_Svr.VBR und DCOMDemo_Svr.TLB. Klicken Sie auf die Schaltfläche Weiter . Im Dialogfeld Remoteserver können Sie den Namen des Computers (Netzadresse) definieren, auf dem der Server ausgeführt wird. In der Regel lassen Sie dieses Feld leer, da Sie möglicherweise nicht im Voraus wissen, wo der Server installiert wird. Wenn Sie es leer lassen, werden Sie bei der Installation des Clients zur Eingabe aufgefordert. Lassen Sie es für dieses Beispiel leer.

  7. Klicken Sie auf Weiter , um fortzufahren. Sie können jetzt mit den Standardprozeduren für den Paket- und Bereitstellungs-Assistenten fortfahren. Klicken Sie in diesem Fall einfach auf Weiter zu allen verbleibenden Dialogfeldern.

Installieren des Servers

Installieren Sie den Server auf dem Computer, auf dem Sie ihn ausführen möchten, und verwenden Sie dabei das zuvor erstellte Verteilungspaket. Wenn Sie ihren Entwicklungscomputer zum Ausführen des Servers verwenden möchten, müssen Sie ihn nicht installieren, da Visual Basic die Registrierung für Sie vornimmt, wenn der Server kompiliert wird.

Installieren des Clients

Installieren Sie den Client auf dem Computer, auf dem Sie ihn ausführen möchten, und verwenden Sie dabei das zuvor erstellte Verteilungspaket. Da dieser Client einen DCOM-Server verwendet und Sie den tatsächlichen Speicherort des Servers beim Erstellen des Verteilungspakets leer gelassen haben, müssen Sie jetzt diesen Speicherort angeben. Wenn Setup Sie zur Eingabe dieses Speicherorts auffordert, geben Sie den Namen des Computers an, auf dem Sie den Server installiert haben.

Festlegen der Sicherheit des Servers

Wenn Sie den Server auf einem Windows NT- oder Windows 2000-Computer installiert haben, müssen Sie die Sicherheit dafür konfigurieren. Verwenden Sie hierzu Dcomcnfg, wie in den folgenden Schritten gezeigt, wobei davon ausgegangen wird, dass sowohl Client- als auch Servercomputer Teil einer Domäne sind und der am Clientcomputer angemeldete Benutzer als Domänenbenutzer angemeldet ist. Die vorgeschlagenen Einstellungen sind nur eine mögliche Konfiguration. Sie sind generisch und ermöglichen einen breiten Zugriff auf den Server. Denken Sie daran, dass dies nur ein Beispiel ist. Wenn Sie Ihre echten Anwendungen bereitstellen und sicherheit ein Problem für Ihre Umgebung ist, sollten Sie restriktivere Optionen auswählen. Wenn der Computer, den Sie zum Testen dieses Beispielservers verwenden, auch zum Ausführen anderer Server verwendet wird, notieren Sie sich die aktuellen Einstellungen, bevor Sie die folgenden Änderungen vornehmen, und kehren Sie zu den ursprünglichen Einstellungen zurück, sobald Sie die Tests abgeschlossen haben.

  1. Klicken Sie auf dem Servercomputer auf die Schaltfläche Start , und wählen Sie dann Ausführen aus. Geben Sie im Dialogfeld Ausführen den Namen Dcomcnfg ein, und klicken Sie dann auf OK. Sie müssen über Administratorrechte verfügen, um Dcomcnfg ausführen zu können.
  2. Wählen Sie die Registerkarte Standardeigenschaften aus, und überprüfen Sie, ob Verteiltes COM auf diesem Computer aktivieren aktiviert ist.
  3. Legen Sie die Standardauthentifizierungsebene auf Verbinden und die Standardidentitätswechselebene auf Identifizieren fest.
  4. Wählen Sie die Registerkarte Standardsicherheit aus.
  5. Klicken Sie im Bereich Standardzugriffsberechtigungen auf die Schaltfläche Standard bearbeiten.
  6. Vergewissern Sie sich, dass jeder und System in der Liste mit Den Zugriffsrechten zulassen enthalten sind. Andernfalls können Sie die Schaltfläche Hinzufügen verwenden, um sie der Liste hinzuzufügen. Klicken Sie auf OK , wenn die Liste abgeschlossen ist.
  7. Klicken Sie im Bereich Standardstartberechtigungen auf die Schaltfläche Standardstandard bearbeiten.
  8. Stellen Sie sicher, dass jeder und System in der Liste mit den Berechtigungen Start zulassen enthalten sind. Falls nicht, verwenden Sie die Schaltfläche Hinzufügen , um sie der Liste hinzuzufügen. Klicken Sie auf OK , wenn die Liste abgeschlossen ist.
  9. Wählen Sie die Registerkarte Anwendungen aus, markieren Sie Ihren Server, DCOMDemo_Svr.Class1, und klicken Sie dann auf die Schaltfläche Eigenschaften .
  10. Wählen Sie die Registerkarte Allgemein aus, legen Sie die Authentifizierungsebene auf Standard fest, und wählen Sie dann die Registerkarte Speicherort aus. Die einzige Option, die aktiviert ist, sollte Anwendung auf diesem Computer ausführen sein.
  11. Wählen Sie die Registerkarte Sicherheit aus, und überprüfen Sie, ob die Optionen Standardzugriffsberechtigungen verwenden und Standardstartberechtigungen verwenden aktiviert sind.
  12. Wählen Sie die Registerkarte Identität aus, aktivieren Sie die Option Benutzer starten , klicken Sie auf OK , um das Dialogfeld Eigenschaften des Servers zu schließen, und klicken Sie dann erneut auf OK , um Dcomcnfg zu schließen. Wie Sie sehen können, verwendet der Testserver alle Standardeinstellungen. Wenn Sie Ihre eigenen Server bereitstellen, sollten Sie spezifische Einstellungen für Ihre Anwendung definieren. Alle benutzerdefinierten Einstellungen haben Vorrang vor den Standardeinstellungen.

Jetzt können Sie Ihren Server testen. Starten Sie den Client auf dem Clientcomputer, und klicken Sie dann auf die Schaltfläche Ausführen . Es sollte ein Meldungsfeld angezeigt werden, das die Zeit des Servers angibt. Wenn Sie dieses Beispiel nicht erfolgreich testen können, lesen Sie den Artikel zur Problembehandlung Q269330, der im Abschnitt "Verweise" aufgeführt ist.