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

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

Originalversion des Produkts:   Visual Basic
Ursprüngliche KB-Nummer:   266717

Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie eine DCOM-Client-/Serveranwendung mithilfe von Visual Basic erstellen, verpacken 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 in der Art und Weise, in der Sie den Client verpacken und bereitstellen. Darüber hinaus gibt es einige Sicherheitseinstellungen, die Sie vornehmen müssen, nachdem der Client und der Server installiert wurden. 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 den Client DCOMDemo_Cli. Erstellen Sie für jeden von ihnen einen separaten Ordner. Rufen Sie für den Zweck dieses Artikels diese Ordner auf c:\DCOMDemo\Server and c:\DCOMDemo\Client.

Erstellen des Servers

  1. Starten Sie eine neue Visual Basic Project. Wählen Sie im Dialogfeld "Neuer Project" ActiveX EXE aus, und klicken Sie dann auf "Öffnen". Class1 wird standardmäßig erstellt.

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

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

  4. Geben Sie im Feld Project Namen DCOMDemo_Svr ein.

  5. Geben Sie im Feld Project Beschreibung DCOMDemo_Svr - Server ein. Aktivieren Sie die Option "Unbeaufsichtigte Ausführung ".

    Hinweis

    Diese Option sollte immer auf Servern aktiviert werden, die keine Benutzeroberfläche haben, um sicherzustellen, dass während der Serverausführung keine Dialogfelder eines beliebigen Typs angezeigt werden. 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 Verpacken der Clientanwendungen benötigt werden, die diesen Server verwenden. Diese Dateien enthalten Registrierungseinträge, die auf dem Clientcomputer enthalten sein müssen.

  7. Schließen Sie das Dialogfeld Project Eigenschaften.

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

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

  10. Wählen Sie im Menü Project die Option Project Eigenschaften aus, und wählen Sie dann die Registerkarte "Komponente" aus.

  11. Wählen Sie auf der Registerkarte "Komponente " die Option " Versionskompatibilität" aus, wählen Sie die Option " Binärkompatibilität " aus, und machen Sie die Projektdatei mit der von Ihnen erstellten ausführbaren Datei des Servers kompatibel (DCOMDemo_Svr.exe). Wenn Sie diese Option auswählen, stellen Sie sicher, dass alle GUIDs unverändert bleiben, wenn Sie den Server erneut kompilieren.

Erstellen des Clients

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

  2. Klicken Sie im Menü Project auf die Option Project Eigenschaften, und wählen Sie dann die Registerkarte "Allgemein" aus.

  3. Geben Sie im Feld Project Namen DCOMDemo_Cli ein.

  4. Geben Sie im Feld Project Beschreibung DCOMDemo_Cli Project - Client ein.

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

  6. Platzieren Sie eine Befehlsschaltfläche in Form1, und ändern Sie die Beschriftung 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.

Verpacken des Servers

Verwenden Sie den Paket- und Bereitstellungs-Assistenten, um den 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 Supportdateien für diesen Zweck 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.

Verpacken des Clients

Beim Packen des Clients müssen 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 ist dies "c:\DCOMDemo\Client\Package".

    Hinweis

    Möglicherweise wird ein Dialogfeld angezeigt, das besagt, dass keine Abhängigkeitsinformationen für den Server vorhanden sind. Klicken Sie auf "OK ", da dieser Server keine Abhängigkeiten aufweist.

    Sie sollten sich nun 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 "Dateityp" in "Remoteserverdateien (*.vbr)."

  6. Zeigen Sie auf den Ordner, in dem Sie das Serverprojekt (in diesem Fall c:\DCOMDemo\Server) haben, 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. Normalerweise halten Sie dieses Feld leer, da Sie möglicherweise nicht im Voraus wissen, wo der Server installiert wird. Wenn Sie ihn leer lassen, werden Sie bei der Installation des Clients dazu aufgefordert. Lassen Sie es für dieses Beispiel leer.

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

Installieren des Servers

Installieren Sie den Server auf dem Computer, auf dem Sie ihn ausführen möchten, mithilfe des zuvor erstellten Verteilungspakets. 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, mithilfe des zuvor erstellten Verteilungspakets. 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 diesen Speicherort jetzt 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, die davon ausgehen, 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 die Sicherheit ein Problem für Ihre Umgebung ist, sollten Sie restriktivere Optionen auswählen. Wenn der Computer, den Sie zum Testen dieses Beispielservers verwenden, 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 " "Dcomcnfg" ein, und klicken Sie dann auf "OK". Sie benötigen Administratorrechte, um Dcomcnfg ausführen zu können.
  2. Wählen Sie die Registerkarte " Standardeigenschaften " aus, und vergewissern Sie sich, dass "Verteilte COM aktivieren" auf diesem Computer aktiviert ist.
  3. Legen Sie die Standardauthentifizierungsebene auf Verbinden fest, und legen Sie die Standardidentitätsidentitätsebene 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 "Zugriffsberechtigungen 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 "Standard bearbeiten".
  8. Vergewissern Sie sich, dass "Jeder" und "System" in der Liste mit den Berechtigungen "Start zulassen" enthalten sind. Wenn nicht, fügen Sie sie der Liste mithilfe der Schaltfläche " Hinzufügen " hinzu. 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 ", 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 stellen Sie sicher, dass die Optionen "Standardzugriffsberechtigungen verwenden" und "Standardstartberechtigungen verwenden" aktiviert sind.
  12. Wählen Sie die Registerkarte "Identität " aus, aktivieren Sie die Startbenutzeroption , klicken Sie auf "OK ", um das Dialogfeld "Servereigenschaften" 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 anwendungsspezifische Einstellungen 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 Uhrzeit des Servers angibt. Wenn Sie dieses Beispiel nicht erfolgreich testen können, lesen Sie den Problembehandlungsartikel Q269330, der im Abschnitt "Verweise" aufgeführt ist.