Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u een DCOM-client-/servertoepassing (Distributed Component Object Model) maakt, verpakt en implementeert met behulp van Visual Basic.
Oorspronkelijke productversie: Visual Basic
Oorspronkelijk KB-nummer: 266717
Samenvatting
In dit artikel leest u hoe u een DCOM-client-/servertoepassing maakt, verpakt en implementeert met behulp van Visual Basic. Als u een DCOM-client-/servertoepassing wilt maken, hebt u de Enterprise Edition van Visual Basic nodig. Microsoft gaat ervan uit dat de lezer al bekend is met het maken van client-/servertoepassingen die op dezelfde computer worden uitgevoerd.
Meer informatie
U hoeft uw code niet te wijzigen om een clienttoepassing in staat te stellen een externe server te instantiëren met behulp van DCOM. Het verschil is de manier waarop u de client inpakt en implementeert. Daarnaast zijn er enkele beveiligingsinstellingen die u moet maken nadat de client en de server zijn geïnstalleerd. U kunt deze instellingen maken met behulp van een hulpprogramma met de naam Dcomcnfg.
De volgende stappen laten zien hoe u een client-/servertoepassing distribueert en configureert. Geef de server een naam DCOMDemo_Svr en geef de client een naam DCOMDemo_Cli. Maak een afzonderlijke map voor elk van deze mappen. Voor dit artikel roept u deze mappen c:\DCOMDemo\Server and c:\DCOMDemo\Client
aan.
De server maken
Start een nieuw Visual Basic-project. Selecteer ActiveX EXE in het dialoogvenster Nieuw project en klik vervolgens op Openen. Klasse1 wordt standaard gemaakt.
Voeg de volgende code toe aan de Klasse1-module:
Public Function ServerTime() As String ServerTime = Time End Function
Klik in het menu Project op de optie Projecteigenschappen en selecteer vervolgens het tabblad Algemeen .
Typ DCOMDemo_Svr in het veld Projectnaam.
Typ in het veld Projectbeschrijving DCOMDemo_Svr - Server. Controleer de optie Uitvoering zonder toezicht.
Notitie
Deze optie moet altijd worden gecontroleerd op servers die geen gebruikersinterface hebben om ervoor te zorgen dat er geen dialoogvensters van een willekeurig type worden weergegeven terwijl de server wordt uitgevoerd. Als u een type gebruikersinteractie hebt terwijl uw server wordt uitgevoerd onder een identiteit die niet de interactieve gebruiker is, lijkt de server mogelijk vast te lopen.
Selecteer het tabblad Onderdeel en schakel de optie Remote Server Files in.
Notitie
Als u deze optie inschakelt, genereert de Visual Basic-compiler de VBR- en TLB-bestanden die nodig zijn voor het verpakken van de clienttoepassingen die gebruikmaken van deze server. Deze bestanden bevatten registervermeldingen die moeten worden opgenomen op de clientcomputer.
Sluit het dialoogvenster Projecteigenschappen .
Selecteer Opslaan als in het menu Bestand en sla dit project vervolgens op in het
c:\DCOMDemo\Server folder
menu Bestand.Selecteer DCOMDemo_Svr maken in het menu Bestand en compileer de server.
Selecteer in het menu Project de optie Projecteigenschappen en selecteer vervolgens het tabblad Onderdeel .
Selecteer op het tabblad Onderdeel versiecompatibiliteit, selecteer de optie Binaire compatibiliteit en zorg ervoor dat het project binair compatibel is met het uitvoerbare bestand van de server dat u hebt gemaakt (DCOMDemo_Svr.exe). Als u deze optie selecteert, zorgt u ervoor dat alle GUID's hetzelfde blijven als u de server opnieuw compileert.
De client maken
Selecteer in het menu Bestand de optie Nieuw project , selecteer Standard EXE en klik vervolgens op OK. Form1 wordt standaard gemaakt.
Klik in het menu Project op de optie Projecteigenschappen en selecteer vervolgens het tabblad Algemeen .
Typ DCOMDemo_Cli in het veld Projectnaam.
Typ in het veld Projectbeschrijving DCOMDemo_Cli Project - Client.
Selecteer Verwijzingen in het menu Project. Selecteer DCOMDemo_Svr - Server in de lijst met beschikbare verwijzingen.
Plaats een opdrachtknop op Formulier1 en wijzig het bijschrift van de knop in Uitvoeren.
Plaats de volgende code in de klik-gebeurtenis van de knop:
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
Selecteer Opslaan als in het menu Bestand en sla het project vervolgens op in de map
c:\DCOMDemo\Client
van de client.Druk op F5 om de client uit te voeren in de IDE en test deze.
Selecteer DCOMDemo_Cli maken in het menu Bestand om de client te compileren en sluit Visual Basic.
De server verpakken
Gebruik de wizard Pakket en implementatie om uw server op de gebruikelijke manier te verpakken voor distributie. De server wordt geïnstantieerd door een externe client met behulp van DCOM. Tijdens het maken van het pakket voor uw server krijgt u een dialoogvenster waarin u wordt gevraagd of deze server wordt gebruikt als een Remote Automation-server en als u ondersteuningsbestanden voor dit doel wilt opnemen. Klik op de knop Nee , omdat DCOM geen externe automatisering is. Remote Automation is een oudere technologie die is vervangen door DCOM.
De client verpakken
Bij het verpakken van de client zijn er enkele specifieke stappen die moeten worden uitgevoerd, gezien het feit dat de server niet op dezelfde computer als de client wordt uitgevoerd. De wijzigingen die zijn aangebracht in het pakket van de client zorgen ervoor dat alleen de typebibliotheek (.tlb-bestand) is geïnstalleerd en dat er enkele extra registervermeldingen zijn opgenomen in plaats van het uitvoerbare bestand van de server, wat niet nodig is op de computer van de client, omdat deze daar niet wordt uitgevoerd.
Verpak de client met behulp van de volgende stappen:
Start de wizard Pakket en Implementatie en selecteer vervolgens het project van de client.
Klik op de knop Pakket . Selecteer in het dialoogvenster Pakkettype het standaardinstallatiepakket en klik vervolgens op Volgende.
Selecteer in het dialoogvenster Pakketmap de map om het pakket op te slaan en klik vervolgens op Volgende. In dit geval is het c:\DCOMDemo\Client\Package.
Notitie
Mogelijk krijgt u een dialoogvenster met de mededeling dat er geen afhankelijkheidsinformatie is voor de server. Klik op OK omdat deze server geen afhankelijkheden heeft.
U moet nu in het dialoogvenster Opgenomen bestanden staan.
Deselecteer het uitvoerbare bestand van de server, DCOMDemo_Svr.exe, omdat u het uitvoerbare bestand van de server niet wilt distribueren en klik vervolgens op de knop Toevoegen.
Wijzig de keuzelijst met invoervak Bestanden van het type in Remote Server Files (*.vbr).
Wijs de map aan waar u het project van uw server hebt (in dit geval
c:\DCOMDemo\Server
) en selecteer het gerelateerde VBR-bestand DCOMDemo_Svr.VBR. Klik op Openen en het dialoogvenster Bestand toevoegen wordt gesloten.Notitie
Deze twee bestanden zijn opgenomen, DCOMDemo_Svr.VBR en DCOMDemo_Svr.TLB. Klik op de knop Volgende. In het dialoogvenster Externe servers kunt u de naam van de computer (Net Address) definiëren waarop de server wordt uitgevoerd. Meestal houdt u dit veld leeg omdat u mogelijk niet van tevoren weet waar de server wordt geïnstalleerd. Als u deze leeg houdt, wordt u hierom gevraagd wanneer u de client installeert. Houd het voor dit voorbeeld leeg.
Klik op Volgende om door te gaan. U kunt nu doorgaan met de standaardprocedures voor de wizard Pakket en Implementatie. Klik in dit geval op Volgende op Alle resterende dialoogvensters.
De server installeren
Installeer de server op de computer waarop u deze wilt uitvoeren met behulp van het distributiepakket dat u eerder hebt gemaakt. Als u de ontwikkelcomputer wilt gebruiken om de server uit te voeren, hoeft u deze niet te installeren omdat Visual Basic de registratie voor u maakt wanneer de server wordt gecompileerd.
De client installeren
Installeer de client op de computer waarop u deze wilt uitvoeren met behulp van het distributiepakket dat u eerder hebt gemaakt. Omdat deze client gebruikmaakt van een DCOM-server en u de werkelijke locatie van de server leeg liet toen u het distributiepakket maakte, moet u deze locatie opgeven. Wanneer Setup u om deze locatie vraagt, geeft u de naam op van de computer waarop u de server hebt geïnstalleerd.
De beveiliging van de server instellen
Als u de server op een Windows NT- of Windows 2000-computer hebt geïnstalleerd, moet u hiervoor beveiliging configureren. Doe dit met behulp van Dcomcnfg, zoals wordt weergegeven in de volgende stappen. Hierbij wordt ervan uitgegaan dat zowel client- als servercomputers deel uitmaken van een domein en dat de gebruiker die is aangemeld bij de clientcomputer is aangemeld als domeingebruiker. De voorgestelde instellingen zijn slechts één mogelijke configuratie. Ze zijn algemeen en geven brede toegang tot de server. Denk eraan dat dit slechts een voorbeeld is. Wanneer u uw echte toepassingen implementeert en beveiliging een probleem is voor uw omgeving, moet u meer beperkende opties selecteren. Als de computer die u gebruikt om deze voorbeeldserver te testen, wordt gebruikt om andere servers uit te voeren, noteert u de huidige instellingen voordat u de volgende wijzigingen aanbrengt en gaat u terug naar de oorspronkelijke instellingen zodra u klaar bent met uw tests.
- Klik op de servercomputer op de knop Start en selecteer Uitvoeren. Typ Dcomcnfg in het dialoogvenster Uitvoeren en klik op OK. U moet beheerdersrechten hebben om Dcomcnfg uit te kunnen voeren.
- Selecteer het tabblad Standaardeigenschappen en controleer of Gedistribueerde COM op deze computer inschakelen is ingeschakeld.
- Stel het standaardverificatieniveau in op Verbinding maken en stel het standaard-imitatieniveau in op Identificeren.
- Selecteer het tabblad Standaardbeveiliging .
- Klik op de knop Standaardinstelling bewerken in het deelvenster Standaardtoegangsmachtigingen .
- Controleer of iedereen en het systeem zijn opgenomen in de lijst met toegangsrechten toestaan. Als dat niet het is, kunt u de knop Toevoegen gebruiken om ze aan de lijst toe te voegen. Klik op OK wanneer de lijst is voltooid.
- Klik op de knop Standaard bewerken in het deelvenster Standaardmachtigingen starten.
- Controleer of iedereen en het systeem zijn opgenomen in de lijst met machtigingen voor starten toestaan. Als dat niet het is, gebruikt u de knop Toevoegen om ze aan de lijst toe te voegen. Klik op OK wanneer de lijst is voltooid.
- Selecteer het tabblad Toepassingen , markeer uw server, DCOMDemo_Svr.Class1 en klik vervolgens op de knop Eigenschappen .
- Selecteer het tabblad Algemeen, stel het verificatieniveau in op Standaard en selecteer vervolgens het tabblad Locatie. De enige optie die is ingeschakeld, moet de toepassing op deze computer uitvoeren.
- Selecteer het tabblad Beveiliging en controleer of de standaardtoegangsmachtigingen gebruiken en de standaardopties voor startmachtigingen gebruiken zijn ingeschakeld.
- Selecteer het tabblad Identiteit, schakel de optie Gebruiker starten in, klik op OK om het dialoogvenster Eigenschappen van de server te sluiten en klik nogmaals op OK om Dcomcnfg te sluiten. Zoals u kunt zien, gebruikt de testserver alle standaardinstellingen. Bij het implementeren van uw eigen servers moet u instellingen definiëren die specifiek zijn voor uw toepassing. Alle aangepaste instellingen hebben voorrang op de standaardinstellingen.
U bent nu klaar om uw server te testen. Start de client op de clientcomputer en klik vervolgens op de knop Uitvoeren . Er wordt een berichtvenster weergegeven dat de tijd van de server aangeeft. Als u dit voorbeeld niet kunt testen, raadpleegt u het artikel over probleemoplossing, Q269330, vermeld in de sectie Verwijzingen.