Как исправить «Запрошенный ресурс используется. (Исключение из HRESULT: 0x800700AA)» - PullRequest
15 голосов
/ 03 февраля 2010

Как я могу решить эту ошибку?

"Запрошенный ресурс используется. (Исключение из HRESULT: 0x800700AA)".

Это появляется при переходе на другой веб-сайт с помощью элемента управления WebBrowser в C # .NET. Почему?

Ответы [ 6 ]

12 голосов
/ 10 февраля 2010

Элемент управления WebBrowser считается «используемым», если в данный момент выполняется действие навигации или открыто какое-либо диалоговое окно блокировки из элемента управления (включая контекстное меню, предупреждения Javascript, диалоговое окно входа в NTLM и т. Д.).Вы можете использовать свойство WebBrowser.IsBusy для определения этих состояний.

Если из-за незавершенного в данный момент действия навигации вы можете попытаться остановить текущую навигацию (если вы действительно хотите остановить, когда страница не завершена загружена) или добавьте новую навигацию в очередь запросов и используйте таймер, чтобы дождаться, пока WebBrowser.IsBusy вернет false.

Если вместо этого состояние занятости связано с одним или несколькими открытыми диалоговыми окнами блокировки, вы можете сделать то же самое ожиданиетехника и, возможно, Messagebox.Show() пользователю сообщение о том, что ожидающая навигация задерживается из-за открытого диалогового окна.

4 голосов
/ 16 декабря 2013

У меня была такая же проблема. Вызов WebBrowser.Stop() не помог, и WebBrowser.IsBusy никогда не становился ложным.

Оказывается, что если на странице создается какой-либо вид диалога (alert() всплывающие окна, ошибки JavaScript, всплывающие окна входа в NTLM и т. .

Мое решение состояло в том, чтобы предотвратить отображение диалогов в первую очередь. Видимо предотвратить все эти всплывающие окна просто; просто установите

webBrowser.ScriptErrorsSuppressed = true;
2 голосов
/ 04 февраля 2010
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 представляет собой набор из 2 сайтов для сравнения.
TotalSiteCount - это количество элементов в UrltocompareList.
Форма для этого наследует IOleClientSite для удаления мультимедиа, такого как изображения, видео и отсутствие активной загрузки X, чтобы ускорить рендеринг в элементе управления веб-браузера

Я использую этот метод вместо system.net.webclient, чтобы получить html веб-страницы, а затем сравнить их.
Я получил эту ошибку при попадании в метод wb.Navigate.

1 голос
/ 16 сентября 2015

Проблема, с которой я столкнулся при запуске тестов specflow с watin в Windows 10, заключается в том, что win10 по умолчанию использует MS Edge, поэтому я никогда не открывал IE, и когда watin запускал его, IE застревал в подсказке для использования настроек по умолчанию. Выбор параметров, закрытие браузера и запуск тестов снова работали для меня.

Просто на что посмотреть

0 голосов
/ 19 августа 2015

Первая попытка

1- Пожалуйста, проверьте URL-адреса навигации (если вы проверяете, проверьте снова скомпилированную папку)

2 - Удалить элемент управления WebBrowser и добавить новый

Я забыл скопировать оригинальный файл App.Path + "\ error.html" и увидеть эту проблему.

Метод гарантии

Я исправляю эту ошибку в VB6

Добавить WebBrowserControl wb (0) (Имя wb, индекс = 0)

И прежде, чем перемещаться

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 голосов
/ 22 декабря 2013

Это можно решить довольно легко.Эта ошибка возникает, когда браузер совершает действие, когда он уже выполняет действие.Например, вы переходите на какой-либо веб-сайт, щелкая правой кнопкой мыши в веб-браузере.Чтобы решить эту проблему, я сделал следующее:

//if my webbrowser isn't performing any actions
if(!myWebBrowser.IsBusy)
{
   //Navigate
   myWebBrowser.Navigate("http://www.google.com");
}
...