2013-05-07 22 views
6

programu konfiguracjiWebBrowser: Nawigacja do strony sieci Web została anulowana

  • Windows 8 (pełną) tabletkę
  • .NET 2.0 aplikacji

pracuję nad projektem, w którym 4 kontrole WebBrowser Nawigują na pewną stronę internetową jednocześnie po załadowaniu aplikacji. Strony mają ten sam HTML, ale pochodzą z różnych serwerów internetowych.

Problem polega na tym, że niektóre z tych stron wyświetlają komunikat "Nawigacja na stronę została anulowana" w kontrolce WebBrowser. Dzieje się tak tylko wtedy, gdy aplikacja się uruchamia. Mam zaimplementowane rozwiązanie opisane here, aby uzyskać kod statusu zwrócony i co dziwne, jest to stan 200 = OK.

Kiedy odświeżam stronę, nagle działa poprawnie. Mam podejrzenia, że ​​problem może być spowodowany jednoczesną nawigacją, ale nie mam pojęcia, jak to zweryfikować.

Wszelkie pomysły?

Odpowiedz

3

W porządku, skończyło się na tym, że uruchomiłem nawigację i czekałem na jej zakończenie, zanim przejdę do następnej, i od tego czasu nie napotkałem problemu. To był problem, który nie potrzebował wymyślnego rozwiązania, i nie mieliśmy czasu na głębsze kopanie, więc poszliśmy z tym.

+0

Mam ten problem w przeszłości. Po intensywnych badaniach wygląda na to, że uderza w KB bezpieczeństwa firmy Microsoft, który uniemożliwia kontrolerowi WebBrowser dostęp do strefy zaufanych witryn. –

0

Mam problem z kontrolką WebBrowser. Chcemy uzyskać zrzut ekranu z adresu strony internetowej i używamy 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(); 
      } 
     } 
    } 

Otrzymujemy obraz jako "Nawigacja na stronę została anulowana". To jest z aplikacji internetowej MVC i działa dobrze z aplikacji konsoli.

Powiązane problemy