COMMENT FAIRE : Créer un composant de service .NET faisant appel aux transactions dans Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 306296 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape explique comment créer un composant .NET desservi qui utilise des transactions. Cet article explique également comment créer un client qui teste votre composant desservi. Microsoft Enterprise Services fournit les services Microsoft COM+ aux composants .NET.

Remarques importantes

  • Composants desservis requièrent des forts noms.
  • Les composants de service doivent être enregistrés dans le GAC (Global Assembly Cache), car il s'agit de ressources système. Application serveur requièrent, mais applications de bibliothèque ne nécessitent pas d'installation dans le GAC (bien qu'il soit été recommandé il).
  • Vous pouvez enregistrer les composants de service auprès de services COM+ soit automatiquement par enregistrement différé, soit manuellement par l'intermédiaire de l'utilitaire Regsvcs.exe. Qui se trouve dans le dossier suivant :
    \WINNT\Microsoft.NET\Framework\ < version>
    Pour plus d'informations sur Regsvcs.exe, reportez-vous à la documentation du Kit de développement (SDK) de Microsoft .NET Framework.
  • Cet exemple suppose que Microsoft SQL Server est installé sur l'ordinateur local.
  • Il n'est donné qu'à titre d'illustration. À proprement parler, la requête select de cet exemple convient à une exécution en dehors d'une transaction COM+, car COM+ utilise le plus haut niveau d'isolation pour la transaction. Pour améliorer le débit de la base de données, il est recommandé, en programmation, de considérer les requêtes de lecture pour les niveaux de transaction inférieurs.

Créez le composant .NET desservi

  1. Créez un nouveau projet de bibliothèque de classes Visual C# nommé ServicedCOM.
  2. Renommez votre classe par défaut et le nom de fichier Class1.cs à SimpleTrans.cs. Exécutez les procédures pour cela :
    1. Dans la fenêtre Affichage de classes, cliquez avec le bouton droit sur Class1 et puis cliquez sur Propriétés.
    2. Dans Propriétés, changez la propriété Nom à SimpleTrans.
  3. Ajoutez une référence à l'espace de noms System.EnterpriseServices.
  4. Ajoutez l'instruction suivante sous forme de la ligne supérieure à SimpleTrans.cs et AssemblyInfo.cs :
    using System.EnterpriseServices;
    Au sommet de SimpleTrans.cs, ajoutez l'instruction suivante :
    using System.Data.SqlClient;
  5. Vous héritez votre classe de ServicedComponent ( nom qualifié complet : System.EnterpriseServices.ServicedComponent ).
  6. Vous ajoutez le code suivant simplement avant le <B>* déclaration </B> class* public :
    [Transaction(TransactionOption.RequiresNew)]
    					
  7. Ajoutez les attributs recommandés suivants à AssemblyInfo.cs :
    [assembly: ApplicationActivation(ActivationOption.Library)]
    [assembly: ApplicationName("SimpleTrans")]	
    					
    • L'attribut ActivationOption indique si le composant sera activé dans le processus de l'appelant. Vous pouvez définir Activation.Option à Bibliothèque ou dedu serveur.
    • L'attribut ApplicationName est le nom qui s'affiche de l'application COM+ dans le catalogue COM+ et la console de services de composants.
  8. Ajoutez l'attribut facultatif suivant à SimpleTrans.cs simplement après les instructions utilisant :
    [assembly: Description("Simple Transactional application to show Enterprise Services")]
    						
    Cet attribut fournit la description de l'application COM+ dans le catalogue COM+ et la console Administration des services de composants.
  9. Ajoutez la méthode suivante à SimpleTrans.cs :
    // Demos Explicit SetComplete/SetAbort
            public string DoTrans()
            {
                SqlConnection	connection;
                SqlCommand		command; 
                SqlDataReader	reader;
                string		name;
                string		query;
    		
                try
                {
                    query = "SELECT au_lname, au_fname FROM authors";
                    connection = new SqlConnection("data source = localhost;
                                                    initial catalog = pubs;
                                                    UID=sa;PWD=");
                    command = new SqlCommand(query, connection);
    
                    connection.Open();
                    reader = command.ExecuteReader();
    				
                    reader.Read();
                    name = reader.GetString(0) + ", " + reader.GetString(1);
                }
                catch(Exception exc)
                {
                    ContextUtil.SetAbort();
                    throw exc;
                }
                return name;
        }
    // Demo implicit SetComplete/SetAbort
    [AutoComplete]
    public void DoTxAuto()
    {
        // Do stuff
    }
    					
  10. Modifiez la chaîne SqlConnection en fonction de votre environnement.

Attribuez un Nom fort à votre assembly

  1. Cliquez sur Démarrer, pointez sur Programmes, pointez sur Microsoft Visual Studio .NET, pointez sur Outils Visual Studio .NET et puis cliquez sur invite de Visual Studio .NET.
  2. À l'invite de commandes, tapez sn.exe -k ServicedCOM.snk pour attribuer un fort nom à votre assembly.

    Pour plus d'information sur les assemblages panneau fort associés à noms, référez-vous à la documentation de Kit de développement .NET FRAMEWORK.
  3. Copiez ServicedCOM.snk dans le dossier du projet.
  4. Dans AssemblyInfo.cs, remplacez le code AssemblykeyFile par le code suivant :
    [assembly: AssemblyKeyFile("..\\..\\ServicedCOM.snk")]
    					

Ajoutez composant de service à COM à COM+

Vous pouvez permettre le composant d'enregistrer dynamiquement lorsque la première instance est créée ou lorsque vous pouvez inscrire manuellement le composant avec Regsvcs.exe. Pour utiliser Regsvcs.exe, suivez la procédure ci-dessous :
  1. Cliquez sur Démarrer, pointez sur Programmes, pointez sur Microsoft Visual Studio .NET, pointez sur Outils Visual Studio .NET et puis cliquez sur invite de Visual Studio .NET.
  2. À l'invite de commandes, tapez regsvcs servicedcom.dll. Cette opération crée une application de bibliothèque COM+ portant le même nom que la classe. Ignorez le message d'avertissement.

Testez votre composant

  1. Dans Bloc-notes, ouvrez un fichier texte.
  2. Collez le code du fichier suivant :
    set o =createobject("ServicedCOM.SimpleTrans")
    
    MsgBox o.DoTrans()
    					
  3. Dans le menu Fichier, cliquez sur Enregistrer.
  4. Dans la boîte de dialogue Enregistrer sous dans la zone de texte Nom de fichier, tapez Test.vbs. Dans la liste Type de fichier, cliquez sur Tous fichiers et puis cliquez sur Enregistrer.
  5. Double-cliquez sur le fichier pour exécuter l'exemple.

Propriétés

Numéro d'article: 306296 - Dernière mise à jour: jeudi 18 septembre 2003 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Mots-clés : 
kbhowtomaster KB306296 KbMtfr kbmt
Traduction automatique
TRADUCTION AUTOMATIQUE : Cet article technique a été traduit par un système automatique, c'est-à-dire sans aucune intervention humaine. Microsoft propose ce type d?articles en complément de ceux traduits par des traducteurs professionnels. Ces articles sont destinés principalement aux utilisateurs ne comprenant pas l'anglais en leur proposant, en complément, une version française de l?information technique fournie dans la version américaine et originale de l?article. Pour plus de détails, veuillez consulter la page http://support.microsoft.com/gp/mtdetails. Attention : Il est possible que certaines parties de l?article ne soient pas traduites par le système automatique et qu?elles soient restées rédigées en anglais. Microsoft ne garantit pas la qualité linguistique des traductions et ne peut être tenu responsable d?aucun problème, direct ou indirect, dû à une quelconque erreur de traduction du contenu ou de son utilisation par les utilisateurs.
La version anglaise de cet article est la suivante: 306296
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com