2013-05-07 23 views
6

AyarınıWebBrowser denetimi: web sayfasına Navigasyon

  • Windows 8 (tam) tablet
  • .NET 2.0 uygulama

bir proje üzerinde çalışıyorum iptal edildiği 4 WebBrowser kontrolleri Uygulama yüklendiğinde aynı anda bazı web sayfalarına yönlendiriliyor. Web sayfalarının aynı HTML’si vardır, ancak farklı web sunucularından geliyorlar.

Sorun, bu sayfalardan bazılarının WebBrowser denetiminde "Web sayfasındaki gezinme iptal edildi" iletisini görüntülemesidir. Bu sadece uygulama başladığında olur. Geri döndürülen durum kodunu almak için here açıklanan çözümü uyguladı ve garip bir şekilde, bu bir 200 = Tamam durumudur.

Sayfayı yenilediğimde, aniden düzgün çalışıyor. Sorunun eşzamanlı navigasyonlardan kaynaklanabileceğine dair şüphelerim var, ancak bunu nasıl doğrulayabileceğimi bilmiyorum.

Herhangi bir fikrin var mı?

cevap

3

Tamam, bu yüzden bir navigasyon başlattım ve bir sonraki yapmadan önce tamamlanmasını bekledim ve o zamandan beri problemle karşılaşmadım. Fantezi bir çözüme ihtiyaç duymayan bir problemdi ve daha derine inmek için zamanımız olmadı, biz de bununla gittik.

+0

Geçmişte bu sorunu yaşıyorum. Yoğun araştırmalardan sonra, WebBrowser denetleyicisinin güvenilen siteler bölgesine erişmesini engelleyen Microsoft'tan güvenlik KB'ye vurulduğu anlaşılıyor. –

0

WebBrowser denetimi ile ilgili bir sorunum var. Web sayfası URL'sinden ekran görüntüsünü almak istiyoruz ve WebBrowser kullanıyoruz.

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(); 
      } 
     } 
    } 

Görüntüyü "Sayfadan Gezinti iptal edildi" olarak alıyoruz. Bu MVC web uygulamasından ve konsol uygulamasından iyi çalışıyor.

İlgili konular