2013-05-07 3 views
6

설정WebBrowser 컨트롤 : 웹 페이지에 탐색

에게
  • 윈도우 8 (전체) 태블릿
  • .NET 2.0 응용 프로그램

내가 프로젝트에서 일하고 있어요 취소 된 4 웹 브라우저 컨트롤 응용 프로그램이로드 될 때 동시에 일부 웹 페이지로 이동 중입니다. 웹 페이지는 동일한 HTML을 가지고 있지만 다른 웹 서버에서옵니다.

문제는 일부 페이지에서 WebBrowser 컨트롤의 "웹 페이지 탐색이 취소되었습니다."메시지를 표시한다는 것입니다. 이는 응용 프로그램이 시작될 때만 발생합니다. 내가 설명한 here 해결책을 구현하여 충분히 반환 된 상태 코드를 얻습니다. 200 = OK 상태입니다.

그런 다음 페이지를 새로 고침하면 갑자기 올바르게 작동합니다. 나는 문제가 동시 항법에 의해 야기 될지도 모른다고 의심하지만 나는 그것을 어떻게 확인할 수 있을지 전혀 모른다.

아이디어가 있으십니까?

답변

3

좋아요, 그래서 내비게이션을 해고하고 다음 게임을하기 전에 완료되기를 기다리고 나서 그 문제가 발생하지 않았습니다. 멋진 해결책이 필요하지 않은 문제 였고, 더 깊이 파고 들어갈 시간이 없었기 때문에 우리는 그 문제를 해결했습니다.

+0

나는이 문제가 과거에 발생했습니다. 집중적 인 연구 끝에 WebBrowser 컨트롤러가 신뢰할 수있는 사이트 영역에 액세스하지 못하게하는 보안 KB가 Microsoft에서 발생했습니다. –

0

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 웹 응용 프로그램에서이며 콘솔 응용 프로그램에서 잘 작동합니다.