Элемент управления WebBrowser: переход на веб-страницу отменен

настройка

  • Windows 8 (полная) таблетки
  • .NET 2.0 приложение

Я работаю над проектом, в котором 4 элемента управления WebBrowser одновременно переходят на некоторую веб-страницу при загрузке приложения. Веб-страницы имеют один и тот же HTML, но поступают с разных веб-серверов.

проблема в том, что некоторые из этих страниц отображают сообщение "навигация к веб-странице была отменена" в элементе управления WebBrowser. Это только происходит при запуске приложения. Я реализовал описанное решение здесь чтобы вернуть код состояния и, как ни странно, это 200 = OK статус.

когда я затем обновляю страницу, она внезапно работает правильно. У меня есть подозрения, что проблема может быть вызвана одновременной навигацией, но я понятия не имею, как это проверить.

какие идеи?

2 ответов


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


У меня проблема с управлением WebBrowser. Мы хотим получить скриншот с URL веб-страницы, и мы используем WebBrowser.

    private void GenerateThumbnail()
    {
        WebBrowser webrowse = new WebBrowser();
        webrowse.ScrollBarsEnabled = false;
        webrowse.AllowNavigation = true;

        webrowse.Navigate("https://stackoverflow.com/questions/31756420/how-to-run-asp-net-mvc-app-in-iis-10-on-windows-10");
        webrowse.Width = 1024;
        webrowse.Height = 768;
        webrowse.DocumentCompleted += webbrowse_DocumentCompleted;
        while (webrowse.ReadyState != WebBrowserReadyState.Complete)
        {
            System.Windows.Forms.Application.DoEvents();
        }
    }
    private void webbrowse_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser webrowse = sender as WebBrowser;
        Bitmap bitmap = new Bitmap(webrowse.Width, webrowse.Height);
        webrowse.DrawToBitmap(bitmap, webrowse.Bounds);
        MemoryStream stream = new MemoryStream();
        bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
        byte[] strbytes = stream.ToArray();
        //imgscreenshot.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(strbytes);
        using (MemoryStream ms = new MemoryStream(strbytes))
        {
            using (System.Drawing.Image screenShotImage = System.Drawing.Image.FromStream(ms))
            {
                Bitmap cp = new Bitmap(screenShotImage);
                cp.Save(@"webPage.png", ImageFormat.Png);
                cp.Dispose();
            }
        }
    }

мы получаем изображение как " навигация к странице была отменена.". Это из веб-приложения MVC, и он отлично работает из консольного приложения.