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

ASP.NET Discussion :

Problème envoie d'une requête SOAP en Ajax sur un webservice C# hébergé via IIS avec chrome


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème envoie d'une requête SOAP en Ajax sur un webservice C# hébergé via IIS avec chrome
    Bonjour à tous,
    je travail sur un projet scolaire avec un groupe de camarade, nous sommes bloqués sur la communication entre le smartphone (requête ajax en soap ) et le webservice (codé en C# et hébergé avec IIS).
    La communication fonctionne lorsque la doc html de la requête est dans la racine du webservice et ce avec tout les navigateurs, mais en revanche elle ne fonctionne qu'avec Internet Explorer depuis un PC distant...
    Alors vous allez me dire qu'il faut paramétrer le fichier web.config du webservice afin d'autoriser le cross-domain, c'est chose nous avons suivie bon nombre de tuto mais toujours impossible d'appeler une méthode avec notre requête débogué sous chrome, ce qui est indispensable pour le reste du projet comme l'application smartphone est sur androïde. N'ayant pas trouvé de solution je sollicite votre aide.

    voici notre requête ajax:
    old_test.html

    Voici les lignes de code de mon web.config (fichier pour paramétrer le web service) censées permettre le cross-domain en activant CORS, notez qu'avec ou sans IE accède toujours aux méthode même depuis un poste distant.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <add name="Access-Control-Allow-Credentials" value="true" />
            <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS, PUT, DELETE,REST" />
            <add name="Access-Control-Allow-Headers" value="Authorization,content-Type,Soapaction,x-requested-with" />
          </customHeaders>
        </httpProtocol>

    grâce à une extension (firebug) de firefox nous savons que ces lignes on pris effet :
    Nom : bug.PNG
Affichages : 496
Taille : 32,3 Ko

    Voilà où nous en sommes, erreur 405 impossible d’accéder à la méthode, tout nous amène à employer CORS et à activer le cross-domain, chose que nous avons faite...
    Si vous avez une solution ou des pistes je suis preneur !
    Ps: étant que ceci est mon 1er poste sur cette plateforme soyez je vous prie indulgent et prévenez moi si je ne suis pas assez explicite dans mes propos ou ma présentation.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je ne vois pas trop le rapport avec le cross domain, je ne pense pas que ce soit la cause du problème.

    As-tu décoré ta méthode HelloWorld avec l'attribut [ScriptMethod] ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse et veuillez m'excusez de mon retard,
    Non je ne connaissais pas cet attribut, je l'ai donc utilisé comme vous me le recommandez mais sans plus de réussite. J'ai toujours une erreur 405 la méthode est inaccessible cependant IE peut toujours y accéder...

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Peux-tu poster le code de la méthode qui pose problème (en incluant le/les attributs) ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Voilà c'est simplement une méthode helloworld, tout ce qu'il y'a de plus banale, pas de problème pour y accéder via le web service IIS, ou la requête SOAP sous Internet Explorer mais je n'arrive pas y accéder avec la requête sous chrome ou firefox...

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [WebMethod]
    [ScriptMethod]
    public string HelloWorld()
    {
        return "Hello world";
    }

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Merci. Depuis AJAX tu envoies quoi comme requête ? POST ou GET ? Peut-on voir le code ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Nous utilisons une requête de type POST
    La voici en pièce jointe :
    old_test.html

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ok merci, au temps pour moi en plus tu l'avais déjà postée... Première question, pourquoi mettre 2 fois le querystring "op" dans l'URL du web service ? C'est inutile.

    Concernant le problème, je n'arrive pas à le reproduire. Voici le code de mon Web Service ASMX :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    //[System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
     
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
    En local tout marche bien, et même en déployant sur un serveur sur un autre domaine je n'ai aucun problème...
    Si tu rajoutes l'attribut WebInvoke sur la méthode du ASMX ca change quelque chose ?
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    public string HelloWorld()
    { }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Donc vous arrivez à accéder à votre méthode helloworld avec ma requête SOAP ??

    de mon coter même avec l'attribut WebInvoke que vous m'avez donnée la requête ne marche toujours pas avec chrome ou firefox...

Discussions similaires

  1. Validation d'une requête SOAP avec WSDL avant envoi
    Par Franckerbo dans le forum C++
    Réponses: 1
    Dernier message: 19/04/2013, 16h30
  2. [AJAX] Envoie d'une requête AJAX
    Par tidus_6_9_2 dans le forum AJAX
    Réponses: 16
    Dernier message: 14/04/2010, 15h23
  3. [AXIS2] Envoi d'un type complexe dans une requête SOAP
    Par godolf dans le forum Services Web
    Réponses: 4
    Dernier message: 20/05/2008, 13h51
  4. Problème tableau pour une requête
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 20h21
  5. [Servlet] envoie d'une requête
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/06/2004, 10h43

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