IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

[C#/.NET 2.0] Problème de namespace/référence


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut [C#/.NET 2.0] Problème de namespace/référence
    Bonjour à tous,


    Débutant dans les services Web, je me retrouve confronté à plusieurs problèmes liés aux références Web.

    je vais vous expliquer ici ma démarche pour effectuer la création d'un service Web simple et la consommation de celui-ci en local.


    Tout d'abord je crée le fichier operations.asmx suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     <%@ webservice Language=C# class=PetitExemple.Exemple %>
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
     
    namespace PetitExemple
    {
     
    	public class Exemple : System.Web.Services.WebService
    	{
    		[WebMethod]
    /*Cet attribut spécifie que la méthode est utilisable par une application cliente d'un service Web*/
    		public int Additionne(int a, int b) 
    		{
    			return a + b;
    		}
    	}
    }

    Ensuite je me dit que j'essaie de prévisualiser ce code dans le navigateur web via http://localhost/st/operations/
    avec le répertoire "st" mis comme répertoire virtuel.
    J'accède alors à la page de test du service Web avec affichage du lien avec le nom de la méthode.


    a partir de la, les incohérence commencent dans mon esprit.
    Je m explique :
    Sans citer les sources car je ne m'en souviens plus, j'ai lu que soit je pouvais créer un assembly dll via wsdl.exe et csc.exe.
    Opérations que j'ai réalisées, je crée un nouveau projet avec visual studio 2005 Express Edition.
    Je crée un projet vide auquel j'ajoute la référence (non web) de la dll fraichement créée (ici petitExemple.dll)
    J'utilise cette référence via le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     using System;
     
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
     
     
     
     
     
    public class Test
    {
        public static void Main(String[] Args)
        {
            Exemple add = new Exemple();
            Console.WriteLine("" + add.Additionne(5, 4));
            Console.ReadLine();
        }
     
     
     
    }
    Après cela, je compile et exécute et... ca fonctionne comme espéré.

    Donc si je résume pour avoir compris, j'ai utilisé une dll qui permet d'utiliser le service web localisé sur ma machine?


    Dans le deuxieme cas, je veux utiliser une référence web, et la ca se complique...

    D'après ce que j'ai lu, quand on ajoute une référence Web, VS.NET s'occupe de compiler l'assembly , c est bien cela?

    Donc j'ajoute une référence web contenant le fichier operations.asmx.
    VS.Net me propose le nom de référence "localhost", ok! (peut importe le nom ajoute, le problème apparaît toujours)
    j'ai donc ma référence localhost.
    je l'utilise de la même manière que la dll via le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    using System;
     
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
     
     
     
     
     
    public class Test
    {
        public static void Main(String[] Args)
        {
            Exemple add = new Exemple();
            Console.WriteLine("" + add.Additionne(5, 4));
            Console.ReadLine();
        }
     
     
     
    }
    Ce code est identique au précédent.


    J'essaie de compiler et j'obtiens l'erreur suivante :
    Erreur 1 Le type ou le nom d'espace de noms 'Exemple' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

    Alors quel est le probleme ?

    J'essaie alors avec petitExemple.exemple à la place de exemple : résultat :
    Erreur 1 Le type ou le nom d'espace de noms 'petitExemple' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)


    Dernier recours , j'essaie en remplaçant petitExemple par localhost : résultat :

    Erreur 1 Le type ou le nom d'espace de noms 'localhost' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

    Sur ce je ne comprend vraiment pas pourquoi cela fonctionne avec une référence assembly que je crée et que cela ne fonctionne pas avec une référence Web?

    Pourriez-vous m'expliquer car je n'ai pas bien compris...

    D'avance Merci pour votre Patience

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par Tetram165
    Donc j'ajoute une référence web contenant le fichier operations.asmx.
    VS.Net me propose le nom de référence "localhost", ok! (peut importe le nom ajoute, le problème apparaît toujours)
    j'ai donc ma référence localhost.
    Avec ta reference localhost, tu devrais pouvoir faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     localhost.Exemple monService =new localhost.Exemple ();

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Par défaut Merci
    Ok,
    Je ne sais pas pk cela ne fonctionnait pas...Peut etre me suis-je perdu dans la nébuleuse des web Service et que je n ai pas pensé à faire cela...

    Un grand merci en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  2. net::ftp perl problème de mget
    Par mollux dans le forum Modules
    Réponses: 1
    Dernier message: 15/06/2006, 13h43
  3. [DOM] Problème de namespace
    Par dauggui dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/04/2006, 07h22
  4. [VB .NET] [Crystal reports] Problème impression
    Par Nicolas2005 dans le forum SDK
    Réponses: 1
    Dernier message: 09/11/2005, 12h35
  5. [CR .Net]Étiquette postal - Problème de marge
    Par theflamme dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 25/05/2005, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo