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

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

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

Это отображается при навигации на другом веб-сайте с использованием элемента управления WebBrowser в С#.NET. Почему?

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

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

webBrowser.ScriptErrorsSuppressed = true;

Ответ 3

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.

Ответ 4

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

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

Ответ 5

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

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

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

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

Гарантийный метод

I Исправьте эту ошибку в VB6

Добавить WebBrowserControl wb (0) (Имя wb, Index = 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

Ответ 6

Я столкнулся с этой проблемой во время работы VB6

ошибка времени выполнения '-2147024726 (800700aa)' Ошибка автоматизации Запрашиваемый ресурс используется

Как решить проблему, можете ли вы помочь в этом шаг за шагом

Пожалуйста, помогите мне

Спасибо Vinoth

Ответ 7

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

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