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

C# Discussion :

WinRT Lenteur ouverture IE lors d'un appel par Launcher.LaunchUriAsync()


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut WinRT Lenteur ouverture IE lors d'un appel par Launcher.LaunchUriAsync()
    Bonjour,

    Lorsqu'une application WinRT demande l'ouverture d'une page Internet en utilisant Launcher.LaunchUriAsync(uri), Internet Explorer peut mettre près de 10 minutes avant de s'ouvrir.... mais fini par s'ouvrir.

    Le problème n'arrive pas à chaque fois, mais il est reproductible il faut en général avoir éteint la machine un certain temps et tester le cas tout de suite après le démarrage de Windows.

    J'ai fait une application très simple avec un champ texte pour taper une URL et un bouton qui lance 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
    24
            private async void Button_Click(object sender, RoutedEventArgs e)
            {
                if(!String.IsNullOrEmpty(theUrl.Text))
                {
                    Uri uri = new Uri((theUrl.Text));
                    var success = await Windows.System.Launcher.LaunchUriAsync(uri);
     
                    if (success)
                    {
                        var messageDialog = new MessageDialog("Commande lancée avec succés");
                        await messageDialog.ShowAsync();
                    }
                    else
                    {
                        var messageDialog = new MessageDialog("Erreur de lancement");
                        await messageDialog.ShowAsync();
                    }
     
                }else
                {
                    var messageDialog = new MessageDialog("Veuillez saisir une URL.");
                    await messageDialog.ShowAsync();
                }
            }
    A l’exécution de ce code, le MessageDialog s'ouvrira correctement une fois Internet Explorer lancé avec le message de succès, je reste donc bloqué dans le "await" comme prévu, sauf que ça prend plusieurs minutes.

    Très étonnement, comme le constate aussi l'un des posts ci-dessous, si on coupe la connexion Internet, IE s'ouvrira cette fois ci instantanément, indiquant qu'il ne peut pas afficher la page...

    Voici quelques postes qui parlent du même problème et qui n'ont pas non plus de solution :
    http://social.msdn.microsoft.com/For...nc-not-working
    http://stackoverflow.com/questions/1...ltiple-seconds

    Les machines concernées sur lequel nous reproduisons le problème sont toutes semblables : Windows 8 Pro x86 sur Samsung ATIV Pro - Atom 1,2Ghz . Le bug est tellement aléatoire (ou lié à la faiblesse du hardware) , que je n'ai pas réussi à le reproduire sur ma machine de développement.

    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    Après recherche, ce n'est pas le process IE qui est lent, car il n'est même pas lancé... Ce doit être le "truc" qui interprète les protocoles qui pataugent avant de comprendre qu'il doit lancer IE (qui est pourtant bien mon navigateur par défaut).

    Dans le gestionnaire de taches, j'ai un processus système nommé :
    Hote de service : service local (aucun réseau) (3)
    - moteur de filtrage de base
    -Pare feu Windows
    - Service de stratégie de diagnostic

    qui prend 25% de CPU... au bout de 10 minutes, il tombe à 0% de CPU les liens IE se lancent. Si je coupe cet ensemble de processus, mon Launcher.LaunchUriAsync() retourne immédiatement False.

    Je n'avance pas trop...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    A priori, c'est bien ce service qui ralentit tout.
    En fait, il n' a pas que le LaunchUriAsync() qui est affecté par ce service. Par exemple, impossible d'accéder à l'administration du Firewall ant que le service patauge.

    Une fois que le service retombe sur ces pattes, la console du Firewall Windows s'ouvre et IE se lance....

    Il ne me reste plus qu'à trouver pourquoi ce service fait cela....

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/11/2014, 08h46
  2. Lenteur d'OutLook lors de l'ouverture
    Par genjinophil dans le forum Outlook
    Réponses: 0
    Dernier message: 20/08/2013, 19h10
  3. Ouverture d'une figure lors de l'appel à guihandles
    Par kap dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 21/10/2009, 07h38
  4. Réponses: 2
    Dernier message: 06/03/2008, 20h24
  5. Réponses: 2
    Dernier message: 20/03/2007, 11h50

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