COMMENT À : vous envoyez en utilisant un Service Web ASP.NET et un Visual C# .NET et recevez des documents binaires

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

Sommaire

Résumé

Cet article étape par étape vous montre comment générer un service Web et un client de services Web pour envoyer et pour recevoir des documents binaires en utilisant Microsoft ASP.NET et Microsoft Visual C# .NET. Vous pouvez utiliser ASP.NET et Visual C# .NET pour générer un service Web capable à la fois d'enregistrer des documents binaires dans un dossier situé sur un serveur Web et d'extraire des documents binaires d'un dossier situé sur un serveur Web Vous pouvez utiliser ce service comme un simple système de gestion de documents sur le Web

Créez le service Web

  1. Dans le menu <B>Fichier</B> de Microsoft Visual Studio .NET cliquez sur <B>Nouveau</B> puis sur <B>Projet</B>
  2. Dans <B>Projets Visual C#</B> sélectionnez <B>Service Web ASP.NET</B> Tapez, collez http://localhost/DocumentManagementService pour l'Emplacement et puis cliquez sur OK. Par défaut le service Service1.asmx est créé et affiché en mode Design
  3. Dans le menu <B>Affichage</B> cliquez sur <B>Code</B> pour afficher le fichier Service1.asmx en mode Code
  4. Ajoutez les codes WebMethod suivants à la classe <B>Service1</B>
    
    [WebMethod]
    public bool SaveDocument( Byte[] docbinaryarray, string docname)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + docname;
    	FileStream objfilestream =new FileStream(strdocPath,FileMode.Create,FileAccess.ReadWrite);
    	objfilestream.Write(docbinaryarray,0,docbinaryarray.Length);
    	objfilestream.Close();
    
    	return true;
    }
    
    [WebMethod]
    public int GetDocumentLen(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	objfilestream.Close();
    
    	return len;
    } 
    
    
    [WebMethod]
    public Byte[] GetDocument(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	Byte[] documentcontents  = new Byte[len];
    	objfilestream.Read(documentcontents,0,len);
    	objfilestream.Close();
    
    	return documentcontents;	
    } 
    					

    NOTE: le code enregistre les documents < à la racine chemin \\DocumentDirectory\\ de répertoire sur le serveur>. Modifiez ce chemin pour fournir l'emplacement du serveur Web où vous souhaitez enregistrer les documents

  5. Ajoutez l'espace de noms suivant vers le début de Service1.asmx :
    using System.IO;
  6. Testez le service Web
    1. Dans le menu <B>Déboguer</B> cliquez sur <B>Démarrer</B> pour démarrer le service Web Le navigateur Web démarre et la page d'aide de la description du service s'affiche
    2. Assurez-vous que les méthodes SaveDocument, GetDocument et GetDocumentLen apparaissent.
    3. Fermez la fenêtre du navigateur Web pour arrêter le débogage

Générer un client pour le service We

  1. Dans le menu <B>Fichier</B> de Visual Studio .NET cliquez sur <B>Ajouter un projet</B> puis sur <B>Nouveau projet</B>
  2. Dans la liste <B>Projets Visual C#</B> sélectionnez <B>Application Windows</B> puis cliquez sur <B>OK</B> Par défaut Form1 est créé
  3. Ajoutez une référence Web au service Web comme suit
    1. Dans l'Explorateur de solutions cliquez avec le bouton droit sur l'élément du projet client Puis sélectionnez Ajouter une référence Web dans le menu Contexte.
    2. Dans la boîte de dialogue <B>Ajouter une référence Web</B> tapez l'URL du fichier WSDL (Web Services Description Language) de votre service Web et appuyez sur ENTRÉE

      NOTE: l'emplacement par défaut du fichier WSDL est http://localhost/DocumentManagementService/Service1.asmx?WSDL.
    3. Dans la boîte de dialogue <B>Ajouter une référence Web</B> cliquez sur <B>Ajouter la référence</B>
  4. Ajoutez deux boutons à Form1 Définissez la propriété Text de button1 à Store Document on the Server. Définissez la propriété Text de button2 à Retrieve Document from the Server.
  5. Double-cliquez sur <B>button1</B> et sur <B>button2</B> pour créer des gestionnaires d'événements Click par défaut pour les boutons
  6. Remplacez les gestionnaires par le code suivant
    string sFile = "<file path>";
    
    private void button1_Click(object sender, System.EventArgs e)
    {
    	FileStream objfilestream = new FileStream(sFile,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;
    	Byte[] mybytearray = new Byte[len];
    	objfilestream.Read(mybytearray,0,len);
    	localhost.Service1 myservice = new localhost.Service1();
    	myservice.SaveDocument(mybytearray,sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Close();
    }
    
    private void button2_Click(object sender, System.EventArgs e)
    {
    	MemoryStream objstreaminput = new MemoryStream();
    	FileStream objfilestream = new FileStream(sFile.Insert(sFile.LastIndexOf("."),"2"), FileMode.Create,FileAccess.ReadWrite);
    						
    	localhost.Service1 myservice = new localhost.Service1();
    	int len = (int)myservice.GetDocumentLen(sFile.Remove(0,sFile.LastIndexOf("\\")+1)); 
    	Byte[] mybytearray = new Byte[len];
    	mybytearray = myservice.GetDocument(sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Write(mybytearray,0,len);
    	objfilestream.Close();
    }
    					
    NOTE: la variable sFile doit contenir le chemin d'accès d'un document sera téléchargé sur le serveur de fichier local. Lorsque le document est téléchargé il est placé dans le même dossier et la valeur <B>2</B> est ajoutée à la fin du nom du fichier

  7. Ajoutez l'espace de noms suivant au début du fichier
    using System.IO;
  8. Dans l'Explorateur de solutions cliquez avec le bouton droit sur l'élément du projet client Puis sélectionnez Définir comme projet de démarrage dans le menu Contexte.

Essayez-le

  1. Dans le menu Déboguer, cliquez sur Démarrer. Form1 apparaît.
  2. Cliquez sur le bouton intitulé Store Document on the Server. Cela appellera la méthode Web SaveDocument. Méthode Web enregistre le document local < à la racine> dossier \DocumentDirectory\ sur le serveur. Après avoir transféré le document vérifiez que le fichier existe dans le dossier de destination
  3. Cliquez sur le bouton intitulé Retrieve Document from the Server. Cela appellera la méthode Web <B>GetDocument</B> Méthode Web extrait le document dossier \DocumentDirectory\ sur le serveur < à partir de la racine>. Le document est enregistré sur le lecteur local spécifié dans le code

Références

Pour plus d'informations, consultez la documentation de Microsoft Visual Studio .NET.

Propriétés

Numéro d'article: 318425 - Dernière mise à jour: lundi 15 décembre 2003 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Mots-clés : 
kbhowtomaster KB318425 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: 318425
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