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

Windows Communication Foundation .NET Discussion :

Appel WCF depuis un méthode JavaScript


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut Appel WCF depuis un méthode JavaScript
    Bonjour,

    je souhaite créer un service WCF "distant" et l'appeler depuis une méthode javascript.

    J'ai trouvé l'exemple suivant :
    http://www.codeproject.com/KB/aspnet...avascript.aspx

    Cependant, dans cet exemple, l'assembly du WCF est référencé dans l'application web... et null part on indique une adresse HTTP pour accéder au service.

    Pour l'instant,
    => j'ai crée un service WCF (que j'ai appelé SimpleService). Je n'ai fait aucune modification, c'est le service d'exemple que VS Studio créait.

    => j'ai crée une application web classique

    => J'ai référencé le service WCF (clic droit sur mon projet web, Add Service Référence)

    Jusque là, tout va bien.

    Dans mon web.config, j'ai ceci :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
      <system.serviceModel>
        <behaviors>
          <endpointBehaviors>
            <behavior name="AspNetAjaxBehavior">
              <enableWebScript />
            </behavior>
          </endpointBehaviors>
        </behaviors>
     
        <bindings>
          <wsHttpBinding>
            <binding name="WSHttpBinding_IService1" closeTimeout="00:01:00"
              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
              textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <reliableSession ordered="true" inactivityTimeout="00:10:00"
                enabled="false" />
              <security mode="Message">
                <transport clientCredentialType="Windows" proxyCredentialType="None"
                  realm="" />
                <message clientCredentialType="Windows" negotiateServiceCredential="true"
                  algorithmSuite="Default" establishSecurityContext="true" />
              </security>
            </binding>
          </wsHttpBinding>
        </bindings>
     
        <client>
          <endpoint address="http://localhost:8731/Design_Time_Addresses/SimpleService/Service1/"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
            contract="SimpleService.IService1" name="WSHttpBinding_IService1">
            <identity>
              <dns value="localhost" />
            </identity>
          </endpoint>
        </client>
     
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
        <services>
          <service name="SimpleService.Service1Client">
            <endpoint 
              behaviorConfiguration="AspNetAjaxBehavior" 
              binding="webHttpBinding"
              contract="SimpleService.IService1" />
          </service>
        </services>
      </system.serviceModel>
    J'ai crée un fichier SimpleService.svc, qui comprend ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ ServiceHost Language="C#" Debug="true" Service="SimpleService.Service1Client" %>

    Sur ma page default.aspx, j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/SimpleService.svc" />
            </Services>
        </asp:ScriptManager>
     
        <script language="javascript" type="text/javascript">
            var toto = new SimpleService.CompositeType();
            alert(toto);
        </script>

    Et bien évidemment, il me plante le js sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var toto = new SimpleService.CompositeType();
    Et c'est là que j'ai besoin d'aide ...
    Qui pourrait m'aider ?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Mais ton service s'appelle Service1Client c'est celui là qu'il faut instancier non ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut
    Je vais regarder les webcast sur WCF pour bien comprendre le principe

    je m'emmêle les pinceaux

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 331
    Points : 180
    Points
    180
    Par défaut
    Bonjour

    alors j'ai regardé pas mal de vidéo sur le WCF, et là vraiment, je commence à être pas mal calée .... ;-)
    Sauf que je n'arrive toujours pas à faire fonctionner mon appel WCF via JavaScript

    J'ai récupéré un code source Code Project à cette adresse :
    http://www.codeproject.com/KB/aspnet...avascript.aspx

    Et je ne comprends pas comment ils font pour créer, dans le JavaScript, un objet de type de celui défini coté WCF (dans le default.aspx)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var todo = new ServiceLibrary.ToDo();
    La Classe todo est définie dans le projet WCF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class ToDo
    Si quelqu'un peut jeter un coup d'oeil est m'expliquer, ce serait sympa

Discussions similaires

  1. Appel Jsp depuis Javascript : problèmes d'accents
    Par lars528 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/01/2011, 17h34
  2. [script.aculo.us] Appel d'une méthode javascript sur le callback onUpdate
    Par thibane dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 02/04/2008, 11h33
  3. Appeler du code behind depuis un événement javascript :
    Par FredChautems dans le forum ASP.NET
    Réponses: 8
    Dernier message: 24/03/2008, 13h36
  4. Appeler du code behind depuis un événement javascript :
    Par FredChautems dans le forum Framework .NET
    Réponses: 0
    Dernier message: 20/03/2008, 12h59
  5. Liveconnect avec Opera 8.5 (appel Java depuis JavaScript)
    Par Gregory3000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2005, 08h32

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