Créer une application cliente/serveur DCOM à l’aide de Visual Basic

Cet article explique comment créer, empaqueter et déployer une application cliente/serveur DCOM (Distributed Component Object Model) à l’aide de Visual Basic.

Version d’origine du produit : Visual Basic
Numéro de la base de connaissances d’origine : 266717

Résumé

Cet article explique comment créer, empaqueter et déployer une application cliente/serveur DCOM à l’aide de Visual Basic. Pour créer une application cliente/serveur DCOM, vous avez besoin de la Êdition Entreprise de Visual Basic. Microsoft part du principe que le lecteur est déjà familiarisé avec la création d’applications clientes/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 réside dans la façon dont vous empaquetez et déployez le client. En outre, vous devez définir certains paramètres de sécurité après l’installation du client et du serveur. Vous pouvez définir ces paramètres à l’aide d’un utilitaire appelé Dcomcnfg.

Les étapes suivantes vous montrent comment distribuer et configurer une application cliente/serveur. Nommez le serveur DCOMDemo_Svr et nommez le client DCOMDemo_Cli. Créez un dossier distinct pour chacun d’eux. Pour les besoins de cet article, appelez ces dossiers c:\DCOMDemo\Server and c:\DCOMDemo\Client.

Créer le serveur

  1. Démarrez un nouveau projet Visual Basic. Dans la boîte de dialogue Nouveau projet , sélectionnez ActiveX EXE, puis cliquez sur Ouvrir. Class1 est créé par défaut.

  2. Ajoutez le code suivant au module Class1 :

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. Dans le menu Projet , cliquez sur l’option Propriétés du projet , puis sélectionnez l’onglet Général .

  4. Dans le champ Nom du projet , tapez DCOMDemo_Svr.

  5. Dans le champ Description du projet , tapez DCOMDemo_Svr - Serveur. Cochez l’option Exécution sans assistance .

    Remarque

    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 quelconque 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.

  6. Sélectionnez l’onglet Composant et case activée l’option Fichiers serveur distant.

    Remarque

    Si vous cochez cette option, le compilateur Visual Basic génère 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.

  7. Fermez la boîte de dialogue Propriétés du projet .

  8. Dans le menu Fichier, sélectionnez Enregistrer sous, puis enregistrez ce projet dans .c:\DCOMDemo\Server folder

  9. Dans le menu Fichier , sélectionnez Effectuer DCOMDemo_Svr et compilez le serveur.

  10. Dans le menu Projet , sélectionnez l’option Propriétés du projet , puis sélectionnez l’onglet Composant .

  11. 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 identiques si vous recompilez le serveur.

Créer le client

  1. Dans le menu Fichier , sélectionnez l’option Nouveau projet , sélectionnez Standard EXE, puis cliquez sur OK. Form1 est créé par défaut.

  2. Dans le menu Projet , cliquez sur l’option Propriétés du projet , puis sélectionnez l’onglet Général .

  3. Dans le champ Nom du projet , tapez DCOMDemo_Cli.

  4. Dans le champ Description du projet , tapez DCOMDemo_Cli Projet - Client.

  5. Dans le menu Projet , sélectionnez Références. Dans la liste des références disponibles, sélectionnez DCOMDemo_Svr - Serveur.

  6. Placez un bouton de commande sur Form1, puis remplacez le légende du bouton par Exécuter.

  7. 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.Description
    
  8. Dans le menu Fichier , sélectionnez Enregistrer sous, puis enregistrez le projet dans le dossier c:\DCOMDemo\Clientdu client .

  9. Appuyez sur la touche F5 pour exécuter le client dans l’IDE et le tester.

  10. Dans le menu Fichier , sélectionnez Effectuer DCOMDemo_Cli pour compiler le client, puis fermez Visual Basic.

Empaqueter le serveur

Utilisez l’Assistant Package et déploiement pour empaqueter votre serveur en vue d’une 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 prise en charge à cet effet. Cliquez simplement sur le bouton Non , car DCOM n’est pas Remote Automation. L’automatisation à distance 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, étant donné 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 à la place de l’exécutable du serveur, ce qui n’est pas nécessaire sur l’ordinateur du client, car il ne va pas s’y exécuter.

Empaquetez le client en procédant comme suit :

  1. Démarrez l’Assistant Package et déploiement, puis sélectionnez le projet du client.

  2. Cliquez sur le bouton Package . Dans la boîte de dialogue Type de package , sélectionnez Package d’installation standard, puis cliquez sur Suivant.

  3. Dans la boîte de dialogue Dossier du package, sélectionnez le dossier dans lequel stocker le package, puis cliquez sur Suivant. Dans ce cas, il s’agit de c :\DCOMDemo\Client\Package.

    Remarque

    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.

  4. Désélectionnez le fichier exécutable du serveur, DCOMDemo_Svr.exe, car vous ne souhaitez pas distribuer le fichier exécutable du serveur, puis cliquez sur le bouton Ajouter.

  5. Remplacez la zone de liste déroulante Fichiers de type par Fichiers de serveur distant (*.vbr).

  6. Pointez sur le dossier où vous avez le 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.

    Remarque

    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 réseau) sur lequel le serveur s’exécute. En règle générale, vous laissez ce champ vide, car vous ne savez peut-être pas à l’avance où le serveur sera installé. Si vous le conservez vide, vous êtes invité à le faire lorsque vous installez le client. Pour cet exemple, laissez-le vide.

  7. 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 celui-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 configuration possible. Ils sont génériques et donnent un accès étendu 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 un problème 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é vos tests.

  1. 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.
  2. Sélectionnez l’onglet Propriétés par défaut et vérifiez que l’option Activer distributed COM sur cet ordinateur est cochée.
  3. Définissez le niveau d’authentification par défaut sur Se connecter, puis définissez le niveau d’emprunt d’identité par défaut sur Identifier.
  4. Sélectionnez l’onglet Sécurité par défaut .
  5. Cliquez sur le bouton Modifier par défaut dans le panneau Autorisations d’accès par défaut .
  6. Vérifiez que Tout le monde et système sont inclus dans la liste avec Autoriser les droits d’accè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.
  7. Cliquez sur le bouton Modifier par défaut dans le panneau Autorisations de lancement par défaut .
  8. Vérifiez que Tout le monde et 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.
  9. Sélectionnez l’onglet Applications , mettez en surbrillance votre serveur, DCOMDemo_Svr.Class1, puis cliquez sur le bouton Propriétés .
  10. Sélectionnez l’onglet Général , définissez niveau d’authentificationsur Par défaut, puis sélectionnez l’onglet Emplacement . La seule option cochée doit être Exécuter l’application sur cet ordinateur.
  11. Sélectionnez l’onglet Sécurité et vérifiez que les options Utiliser les autorisations d’accès par défaut et Utiliser les autorisations de lancement par défaut sont cochées.
  12. Sélectionnez l’onglet Identité, case activée 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. Lorsque vous déployez 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 correctement cet exemple, consultez l’article de résolution des problèmes, Q269330, répertorié dans la section « Références ».