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 :

Erreur aléatoire sur appel Service Web


Sujet :

Services Web

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2013
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Erreur aléatoire sur appel Service Web
    Bonjour à tous,

    J'ai un Service Web qui marche bien sur un environnement de production.
    Mais de temps en temps j'ai une exception qui est levée :
    à System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\r\n
    à System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)\r\n
    à System.Threading.Tasks.Task`1.get_Result()\r\n
    à fctSendRequestSynchrone[T](String sRequest, enumHttpMethod eMethod, Object oParams)\r\n
    à API.csRestApi.<SendRequest>d__0`1.MoveNext()"
    Voici mon code :
    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
    52
    53
    54
     
    .........
     
    //Voici la ligne qui génère l'exception :
    fctSendRequestSynchrone<string>(string.Format("logs/{0}/message", _lIdLog), cs.enumHttpMethod.POST, oLogLigne);
     
    .........
    //-------------------------------------------------------------------------------------
     
    private T fctSendRequestSynchrone<T>(string sRequest, csRestApi.enumHttpMethod eMethod, object oParams = null)
            {
                Task<T> otask = fctSendRequest<T>(sRequest, eMethod, oParams);
                return otask.Result;
            }
     
    //-------------------------------------------------------------------------------------
     
    public async Task<T> SendRequest<T>(string sAction, enumHttpMethod eMethod, object oParams = null)
            {
     
                string sResponse = string.Empty;
                T oValue;
     
                      using (var oClient = new HttpClient(new LogginHandler(_oCnx, new HttpClientHandler())))
                    {
                        oClient.DefaultRequestHeaders.Accept.Clear();
                        oClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
     
                        string sRequest = string.Concat(_sUrlApi, "/", sAction);
     
                        if (_oToken != null)
                        {
                            oClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(_oToken["token_type"], _oToken["access_token"]);
                        }                  
     
                        using (HttpResponseMessage oResponse = await oClient.PostAsJsonAsync(sRequest, oParams))
                        {
                              if (oResponse.IsSuccessStatusCode)
                              {
                                    HttpContent content = oResponse.Content;
                                    sResponse = await content.ReadAsStringAsync();
                              }
                              else
                              {
                                   throw new RestApiException(oResponse);
                              }
                        }
     
                    }
     
                    oValue = JsonConvert.DeserializeObject<T>(sResponse);
     
                return oValue;
            }
    Auriez vous une idée du problème ?

    Merci beaucoup par avance.

    Eric

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    et les try catch ils sont où ??
    le réseau (comme plein de choses) ca peut planter, donc hors de question de faire une appli sans try catch (partout de préférence), et du coup c'est à toi de gérer ce que tu fais en cas d'erreur

    au passage tu récupèreras surement la vraie erreur, là ca ressemble plus à "task non try catchée"
    bien que ca puisse venir du .Result, qui est à éviter tant qu'on peut ... (tout comme les async void)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [3.x] Erreur 500 sur appel d'un service
    Par cpom dans le forum Symfony
    Réponses: 7
    Dernier message: 02/12/2016, 15h49
  2. Réponses: 1
    Dernier message: 11/07/2013, 20h07
  3. exposé sur les services web
    Par soumaa dans le forum Services Web
    Réponses: 1
    Dernier message: 24/05/2007, 14h27
  4. [ByRef Error] Erreur Bizarre sur appel de sub
    Par |DUCATI| DesMo dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/05/2007, 11h10
  5. Erreur aléatoire sur l'écriture d'un fichier
    Par Jorael dans le forum Delphi
    Réponses: 23
    Dernier message: 12/02/2007, 10h35

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