Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment créer, empaqueter et déployer une application client/serveur DCOM (Distributed Component Object Model) à l’aide de Visual Basic.
Version du produit d’origine : Visual Basic
Numéro de base de connaissances d’origine : 266717
Résumé
Cet article explique comment créer, empaqueter et déployer une application client/serveur DCOM à l’aide de Visual Basic. Pour créer une application cliente/serveur DCOM, vous avez besoin des Êdition Entreprise de Visual Basic. Microsoft part du principe que le lecteur est déjà familiarisé avec la création d’applications client/serveur qui s’exécutent sur le même ordinateur.
Plus d’informations
Vous n’avez pas besoin de modifier votre code pour permettre à une application cliente d’instancier un serveur distant à l’aide de DCOM. La différence est la façon dont vous empaquetez et déployez le client. En outre, certains paramètres de sécurité doivent être définis après l’installation du client et du serveur. Vous pouvez effectuer ces paramètres à l’aide d’un utilitaire appelé Dcomcnfg.
Les étapes suivantes vous montrent comment distribuer et configurer une application client/serveur. Nommez le serveur DCOMDemo_Svr et nommez le DCOMDemo_Cli client. Créez un dossier distinct pour chacun d’entre eux. Dans le cadre de cet article, appelez ces dossiers c:\DCOMDemo\Server and c:\DCOMDemo\Client.
Créer le serveur
Démarrez un nouveau projet Visual Basic. Dans la boîte de dialogue Nouveau projet , sélectionnez ActiveX EXE, puis cliquez sur Ouvrir. La classe1 est créée par défaut.
Ajoutez le code suivant au module Class1 :
Public Function ServerTime() As String ServerTime = Time End FunctionDans le menu Projet, cliquez sur l’option Propriétés du projet, puis sélectionnez l’onglet Général.
Dans le champ Nom du projet, tapez DCOMDemo_Svr.
Dans le champ Description du projet, tapez DCOMDemo_Svr - Server. Cochez l’option Exécution sans assistance.
Note
Cette option doit toujours être cochée dans les serveurs qui n’ont pas d’interface utilisateur pour garantir qu’aucune boîte de dialogue d’un type n’est affichée pendant l’exécution du serveur. Si vous avez un type d’interaction utilisateur pendant que votre serveur s’exécute sous une identité qui n’est pas l’utilisateur interactif, votre serveur peut sembler se bloquer.
Sélectionnez l’onglet Composant , puis cochez l’option Fichiers serveur distants.
Note
La vérification de cette option permet au compilateur Visual Basic de générer les fichiers VBR et TLB nécessaires pour empaqueter les applications clientes qui utilisent ce serveur. Ces fichiers contiennent des entrées de Registre qui doivent être incluses sur l’ordinateur client.
Fermez la boîte de dialogue Propriétés du projet.
Dans le menu Fichier , sélectionnez Enregistrer sous, puis enregistrez ce projet dans le
c:\DCOMDemo\Server folderfichier .Dans le menu Fichier , sélectionnez Créer DCOMDemo_Svr et compiler le serveur.
Dans le menu Projet, sélectionnez l’option Propriétés du projet, puis sélectionnez l’onglet Composant.
Sous l’onglet Composant , sélectionnez Compatibilité des versions, sélectionnez l’option Compatibilité binaire, puis rendez le fichier binaire du projet compatible avec le fichier exécutable du serveur que vous avez créé (DCOMDemo_Svr.exe). En sélectionnant cette option, vous vous assurez que tous les GUID sont conservés de la même façon si vous recompilez le serveur.
Créer le client
Dans le menu Fichier , sélectionnez l’option Nouveau projet , sélectionnez EXE Standard, puis cliquez sur OK. Form1 est créé par défaut.
Dans le menu Projet, cliquez sur l’option Propriétés du projet, puis sélectionnez l’onglet Général.
Dans le champ Nom du projet, tapez DCOMDemo_Cli.
Dans le champ Description du projet, tapez DCOMDemo_Cli Project - Client.
Dans le menu Projet , sélectionnez Références. Dans la liste des références disponibles, sélectionnez DCOMDemo_Svr - Serveur.
Placez un bouton de commande sur Form1 et remplacez la légende du bouton par Exécuter.
Placez le code suivant dans l’événement click du bouton :
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.DescriptionDans le menu Fichier , sélectionnez Enregistrer sous, puis enregistrez le projet dans le dossier
c:\DCOMDemo\Clientdu client.Appuyez sur la touche F5 pour exécuter le client dans l’IDE et testez-le.
Dans le menu Fichier , sélectionnez Créer DCOMDemo_Cli pour compiler le client, puis fermez Visual Basic.
Empaqueter le serveur
Utilisez l’Assistant Package et Déploiement pour empaqueter votre serveur pour la distribution comme d’habitude. Le serveur est instancié par un client distant à l’aide de DCOM. Lors de la création du package pour votre serveur, vous obtenez une boîte de dialogue vous demandant si ce serveur sera utilisé comme serveur Remote Automation et si vous souhaitez inclure des fichiers de support à cet effet. Cliquez simplement sur le bouton Non , car DCOM n’est pas Remote Automation. Remote Automation est une technologie plus ancienne qui a été remplacée par DCOM.
Empaqueter le client
Lors de l’empaquetage du client, certaines étapes spécifiques doivent être effectuées, compte tenu du fait que le serveur ne s’exécute pas sur le même ordinateur que le client. Les modifications apportées au package du client garantissent que seule la bibliothèque de types (fichier .tlb) est installée et que certaines entrées de Registre supplémentaires sont incluses au lieu de l’exécutable du serveur, ce qui n’est pas nécessaire sur l’ordinateur du client, car elle n’y sera pas exécutée.
Empaqueter le client en procédant comme suit :
Démarrez l’Assistant Package et déploiement, puis sélectionnez le projet du client.
Cliquez sur le bouton Package . Dans la boîte de dialogue Type de package, sélectionnez Package d’installation standard, puis cliquez sur Suivant.
Dans la boîte de dialogue Dossier de package, sélectionnez le dossier à stocker, puis cliquez sur Suivant. Dans ce cas, il s’agit de c :\DCOMDemo\Client\Package.
Note
Vous pouvez obtenir une boîte de dialogue indiquant qu’il n’existe aucune information de dépendance pour le serveur. Cliquez sur OK , car ce serveur n’a pas de dépendances.
Vous devez maintenant être dans la boîte de dialogue Fichiers inclus.
Désélectionnez le fichier exécutable du serveur, DCOMDemo_Svr.exe, car vous ne souhaitez pas distribuer l’exécutable du serveur, puis cliquez sur le bouton Ajouter.
Modifiez la zone de liste déroulante Fichiers de type en fichiers serveur distants (*.vbr).
Pointez sur le dossier dans lequel vous disposez du projet de votre serveur (dans ce cas
c:\DCOMDemo\Server), puis sélectionnez le fichier VBR associé, DCOMDemo_Svr.VBR. Cliquez sur Ouvrir, puis la boîte de dialogue Ajouter un fichier se ferme.Note
Ces deux fichiers sont inclus, DCOMDemo_Svr.VBR et DCOMDemo_Svr.TLB. Cliquez sur le bouton Suivant. Dans la boîte de dialogue Serveurs distants , vous pouvez définir le nom de l’ordinateur (adresse net) où le serveur est en cours d’exécution. En règle générale, vous conservez ce champ vide, car vous ne savez peut-être pas à l’avance où le serveur sera installé. Si vous la conservez vide, vous y êtes invité lorsque vous installez le client. Pour cet exemple, laissez-le vide.
Cliquez sur Suivant pour continuer. Vous pouvez maintenant suivre les procédures standard de l’Assistant Package et Déploiement. Dans ce cas, cliquez simplement sur Suivant pour toutes les boîtes de dialogue restantes.
Installer le serveur
Installez le serveur sur l’ordinateur sur lequel vous souhaitez l’exécuter, à l’aide du package de distribution que vous avez créé précédemment. Si vous souhaitez utiliser votre ordinateur de développement pour exécuter le serveur, vous n’avez pas besoin de l’installer, car Visual Basic effectue l’inscription pour vous quand il compile le serveur.
Installer le client
Installez le client sur l’ordinateur sur lequel vous souhaitez l’exécuter, à l’aide du package de distribution que vous avez créé précédemment. Étant donné que ce client utilise un serveur DCOM et que vous avez laissé l’emplacement réel du serveur vide lorsque vous avez créé le package de distribution, vous devez maintenant fournir cet emplacement. Lorsque le programme d’installation vous invite à entrer cet emplacement, indiquez le nom de l’ordinateur sur lequel vous avez installé le serveur.
Définir la sécurité du serveur
Si vous avez installé le serveur sur un ordinateur Windows NT ou Windows 2000, vous devez configurer la sécurité pour celle-ci. Pour ce faire, utilisez Dcomcnfg, comme indiqué dans les étapes suivantes, qui supposent que les ordinateurs clients et serveurs font partie d’un domaine et que l’utilisateur connecté à l’ordinateur client est connecté en tant qu’utilisateur de domaine. Les paramètres suggérés ne sont qu’une seule configuration possible. Ils sont génériques et donnent un accès large au serveur. N’oubliez pas que ce n’est qu’un exemple. Lorsque vous déployez vos applications réelles et que la sécurité est une préoccupation pour votre environnement, vous devez sélectionner des options plus restrictives. En outre, si l’ordinateur que vous utilisez pour tester cet exemple de serveur est utilisé pour exécuter d’autres serveurs, notez les paramètres actuels avant d’apporter les modifications suivantes et revenez aux paramètres d’origine dès que vous avez terminé avec vos tests.
- Sur l’ordinateur serveur, cliquez sur le bouton Démarrer , puis sélectionnez Exécuter. Dans la boîte de dialogue Exécuter , tapez Dcomcnfg, puis cliquez sur OK. Vous devez disposer de droits d’administrateur pour pouvoir exécuter Dcomcnfg.
- Sélectionnez l’onglet Propriétés par défaut, puis vérifiez que l’option Activer Distributed COM sur cet ordinateur est cochée.
- Définissez le niveau d’authentification par défaut pour se connecter et définissez le niveau d’emprunt d’identité par défaut pour identifier.
- Sélectionnez l’onglet Sécurité par défaut.
- Cliquez sur le bouton Modifier la valeur par défaut dans le volet Autorisations d’accès par défaut.
- Vérifiez que tout le monde et le système sont inclus dans la liste avec des droits d’accès autorisés. Si ce n’est pas le cas, vous pouvez utiliser le bouton Ajouter pour les ajouter à la liste. Cliquez sur OK lorsque la liste est terminée.
- Cliquez sur le bouton Modifier la valeur par défaut dans le volet Autorisations de lancement par défaut.
- Vérifiez que tout le monde et le système sont inclus dans la liste avec les autorisations Autoriser le lancement. Si ce n’est pas le cas, utilisez le bouton Ajouter pour les ajouter à la liste. Cliquez sur OK lorsque la liste est terminée.
- Sélectionnez l’onglet Applications , mettez en surbrillance votre serveur, DCOMDemo_Svr.Class1, puis cliquez sur le bouton Propriétés .
- Sélectionnez l’onglet Général, définissez le niveau d’authentification par défaut, puis sélectionnez l’onglet Emplacement. La seule option activée doit être Exécuter l’application sur cet ordinateur.
- Sélectionnez l’onglet Sécurité et vérifiez que les options Utiliser les autorisations d’accès par défaut et les options Utiliser les autorisations de lancement par défaut sont cochées.
- Sélectionnez l’onglet Identité, cochez l’option utilisateur de lancement, cliquez sur OK pour fermer la boîte de dialogue Propriétés du serveur, puis cliquez à nouveau sur OK pour fermer Dcomcnfg. Comme vous pouvez le voir, le serveur de test utilise tous les paramètres par défaut. Lors du déploiement de vos propres serveurs, vous devez définir des paramètres spécifiques à votre application. Tous les paramètres personnalisés sont prioritaires sur les paramètres par défaut.
Vous êtes maintenant prêt à tester votre serveur. Sur l’ordinateur client, lancez le client, puis cliquez sur le bouton Exécuter . Vous devez voir une boîte de message indiquant l’heure du serveur. Si vous ne parvenez pas à tester cet exemple, consultez l’article de résolution des problèmes, Q269330, répertorié dans la section « Références ».