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

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Appel d'un web service HTTPS -> Le ServicePointManager ne prend pas en charge les proxies avec le schéma https
    Bonjour,

    Voilà mon problème :
    - j'attaque un web service tiers avec une url en https. Cela fonctionne nickel sur mon pc sous visual studio.
    - Dés que je publie sur le serveur, même après avoir ajouté tous les codes trouvés sur le web, j'ai toujours le message 'Le ServicePointManager ne prend pas en charge les proxies avec le schéma https'

    Mes questions :
    - cela peut il être un problème de code alors que j'ai ajouté le code permettant de bypassé l'erreur de la demande d'un certificat ?
    - y a t'il une configuration à faire sur le serveur afin d'autoriser ASP.NEt ou le Serveur (firewal ou autre) afin d'accèder au web service ?

    Merci d'avance,

    Cdlt,

    Luc

  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
    Peut-on voir le fichier de config de ton application ? Ou à défaut le bout de code qui génère cette erreur ?

    Quelle version du .NET Framework utilises-tu ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Voilà le code que j'utilise et qui fonctionne bien sur mon pc :

    Je travaille en Framework 4.0 et je me connecte à un serveur externe à l'entreprise en https.

    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
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    // Trust all certificates. This is just for sample code. 
                ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);
     
                XmlDocument soapEnvelopeXml = CreateSoapEnvelope();
                HttpWebRequest webRequest = CreateWebRequest(_url, _action);
     
                IWebProxy proxy_sbe = webRequest.Proxy;
     
                if (proxy_sbe != null)
                {
                    string proxyuri = proxy_sbe.GetProxy(webRequest.RequestUri).ToString();
                    webRequest.UseDefaultCredentials = true;
                    webRequest.Proxy = new WebProxy(proxyuri, false);
                    webRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
                }
     
     
     
     
                InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);
     
                // begin async call to web request.
                IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);
     
                // suspend this thread until call is complete. You might want to
                // do something usefull here like update your UI.
                asyncResult.AsyncWaitHandle.WaitOne();
     
                // get the response from the completed web request.
                string soapResult;
                using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
                {
                    using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
                    {
                        soapResult = rd.ReadToEnd();
                    }
                    Console.Write(soapResult);
     
                }
            }
     
            private static HttpWebRequest CreateWebRequest(string url, string action)
            {
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
                webRequest.Headers.Add("SOAPAction", action);
                webRequest.ContentType = "text/xml;charset=\"utf-8\"";
                webRequest.Accept = "text/xml";
                webRequest.Method = "POST";
     
                webRequest.Timeout = 100000;
                webRequest.MaximumResponseHeadersLength = 3000;
     
                return webRequest;
            }
     
            private static XmlDocument CreateSoapEnvelope()
            {
                XmlDocument soapEnvelop = new XmlDocument();
     
                String userName = "";
                String password = "";
                String corporationCode = "";
                String serviceTypeCode = "GS";
                String langue = "fr";
                String requestId = "ALL";
                String stockCode = "ACE";
     
                string soap_env = @"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ace=""http://adresse site"">
                                        <soapenv:Header/>
                                        <soapenv:Body>
                                            <ace:getStockInfo>
                                                <header>
                                                    <userName>" + userName + @"</userName>
                                                    <password>" + password + @"</password>
                                                    <corporationCode>" + corporationCode + @"</corporationCode>
                                                    <serviceTypeCode>" + serviceTypeCode + @"</serviceTypeCode>
                                                    <langue>" + langue + @"</langue>
                                                    <requestId>" + requestId + @"</requestId>
                                                    <requestDate>" + DateTime.Now.ToString("o") + "</requestDate>" +
                                                @"</header>
                                                <stockCode>" + stockCode + @"</stockCode>";
     
                soap_env += @"<manufacturerCode>AP</manufacturerCode>";
     
                //if (modelCode != String.Empty)
                //    soap_env += "<modelCode>" + modelCode + "</modelCode>";
     
                soap_env += @"</ace:getStockInfo>
                        </soapenv:Body>
                    </soapenv:Envelope>";
     
                soapEnvelop.LoadXml(soap_env);
     
                return soapEnvelop;
            }
     
            private static void InsertSoapEnvelopeIntoWebRequest(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest)
            {
                using (Stream stream = webRequest.GetRequestStream())
                {
                    soapEnvelopeXml.Save(stream);
                }
            }

    Cdlt,

    Luc

  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
    Ok je pense que ca vient du proxy utilisé, si tu préfixes ton URL par http:// ca devrait marcher. Mais là je n'ai aucune info pour te dire où agir vu que je ne sais pas où tu récupères tes adresses.

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    C'est peut être dans le web.config qu'il faut configurer ça.

Discussions similaires

  1. Appel d'un web service via HTTPS
    Par IMPRO dans le forum Services Web
    Réponses: 0
    Dernier message: 17/03/2014, 11h11
  2. Réponses: 0
    Dernier message: 06/06/2008, 17h03
  3. Appel d'un web service
    Par pjmorce dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 08/05/2008, 08h13
  4. Appel d'un Web services via excel.
    Par killysui dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/02/2008, 14h30
  5. Appel d'un Web Services dans php
    Par ggjedi dans le forum Services Web
    Réponses: 1
    Dernier message: 05/02/2008, 10h32

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