Comment réparer "La ressource demandée est en cours d'utilisation. (Exception de HRESULT: 0x800700AA)"

comment résoudre cette erreur?

"La ressource demandée est en cours d'utilisation. (Exception de HRESULT: 0x800700AA)".

ceci apparaît lors de la navigation sur un site Web différent en utilisant le contrôle WebBrowser en C# .NET. Pourquoi?

15
demandé sur TylerH 2010-02-03 10:43:55

6 réponses

le contrôle WebBrowser est considéré comme "utilisé" si soit une action de navigation est en cours de traitement, soit toute boîte de dialogue de blocage du contrôle est actuellement ouverte (y compris le menu contextuel, les alertes Javascript, la boîte de dialogue de connexion NTLM, etc.). Vous pouvez utiliser le WebBrowser.IsBusy propriété pour détecter ces états.

Si, en raison actuellement incomplète action de navigation, vous pouvez essayer d'arrêter la navigation en cours (si vous voulez arrêter lorsque la page n'est pas terminée chargé) ou ajouter le nouveau navigation vers une file d'attente de requête et utilisation d'une minuterie pour attendre WebBrowser.IsBusy retourne false.

si au lieu de cela l'état occupé est dû à un ou plusieurs dialogues de blocage ouverts, vous pourriez faire la même technique d'attente et peut-être Messagebox.Show() l'utilisateur un message indiquant que la navigation en attente est retardée en raison d'une fenêtre de dialogue ouverte.

12
répondu Sheng Jiang 蒋晟 2015-10-08 22:58:16

j'ai eu ce même problème. Appel de WebBrowser.Stop() n'a pas aidé, et WebBrowser.IsBusy n'est jamais devenu faux.

Il s'avère que si la page crée toute sorte de dialogue (alert() les popups, les erreurs javascript, NTLM connexion popups, etc.) vous ne pouvez pas naviguer loin de la page tant que la boîte de dialogue n'est pas fermée.

ma solution était d'empêcher les dialogues de se manifester en premier lieu. Apparemment prévenir tous ces popups est simple; juste set

webBrowser.ScriptErrorsSuppressed = true;
4
répondu BlueRaja - Danny Pflughoeft 2017-05-23 12:01:08
bool go = false;
string SiteContent1 = string.Empty;
string SiteContent2 = string.Empty;
int index = 0;
WebBrowser wb = new  WebBrowser();

    void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

        try
        {
            if (go)
            {
                SiteContent2 = wb.DocumentText;
                // Code to compare to contents of the webbrowser
                index++;
                go = false;
                steps = 1;
            }

            if (!go)
                {

                    if (index >= TotalSiteCount)
                    {
                        Stop();
                    }
                    else if (steps == 1)
                    {
                        wb.Navigate(UrltocompareList[index].Url1);

                    }
                    else if (steps == 2)
                    {
                        SiteContent1 = wb.DocumentText;
                        wb.Navigate(UrltocompareList[index].Url2);
                        go = true;
                    }
                    steps++;                        
                }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

        }

    }

UrltocompareList est une collection de 2 sites à comparer.

Totalsecount est le nombre D'éléments dans UrltocompareList.

La forme pour cette hériter IOleClientSite pour enlever des médias tels que des images, des vidéos et aucun téléchargement x actif pour avoir un temps de rendu plus rapide dans le contrôle webbrowser.

j'utilise cette méthode au lieu du système.net.webclient pour obtenir le html d'une page Web, puis les comparer.

J'ai eu cette erreur lors de l' ça touche la Banque mondiale.Méthode de navigation.

2
répondu Jepe d Hepe 2010-02-04 04:15:24

un problème que j'ai rencontré lors de l'exécution des tests specflow avec watin dans windows 10 est que win10 par défaut utilise MS Edge, donc je n'avais jamais ouvert IE, et lorsque watin a commencé IE était bloqué sur l'invite pour utiliser les paramètres par défaut. La sélection des options, la fermeture du navigateur et l'exécution de tests ont encore fonctionné pour moi.

Juste quelque chose à regarder

1
répondu BlackICE 2015-09-16 03:08:25

Premier Essai

1 -Veuillez Vérifier Naviguer URL (si vous vérifiez, vérifiez une nouvelle fois compilé un dossier)

2 - Supprimer le Contrôle WebBrowser et d'Ajouter de Nouvelles

Moi oublier copie du fichier d'origine App.Chemin + "\erreur.code html" et de voir ce problème.

Méthode De Garantie

je corrige cette erreur dans VB6

Ajouter WebBrowserControl wb(0) (Nom de la bm , de l'Indice=0)

Et Avant Toujours Naviguer

For i = 1 To wb.UBound

    Unload wb(i)

Next

Load wb(1)

wb(0).Visible = False

wb(1).Visible = true

wb(1).Navigate URL
0
répondu zersina 2016-09-16 07:13:20

Cela peut être résolu assez facilement. Cette erreur se produit lorsque le navigateur commet une action alors qu'il exécute déjà une action. Par exemple, vous naviguez vers un site Web pendant que vous cliquez sur le navigateur Web. Pour résoudre ce problème, j'ai fait:

//if my webbrowser isn't performing any actions
if(!myWebBrowser.IsBusy)
{
   //Navigate
   myWebBrowser.Navigate("http://www.google.com");
}
-1
répondu eli 2013-12-22 11:44:30