WebBrowser控件:导航到网页已取消

时间:2013-05-07 15:20:11

标签: c# .net webbrowser-control

设置

  • Windows 8(完整)平板电脑
  • .NET 2.0应用程序

我正在开发一个项目,其中4个WebBrowser控件在加载应用程序时同时导航到某个网页。网页具有相同的HTML,但来自不同的Web服务器。

问题是其中一些页面在WebBrowser控件中显示“导航到网页已取消”消息。这仅在应用程序启动时发生。我已经实现了描述here所描述的解决方案来获取状态代码并且非常奇怪,它是200 = OK状态。

当我刷新页面时,它突然正常工作。我怀疑问题可能是由同时导航造成的,但我不知道如何验证这一点。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

好吧,所以我在开始导航并等待它完成之前完成下一个导航并且我从未遇到过问题。这是一个不需要花哨的解决方案的问题,我们没有时间深入挖掘,所以我们就这样做了。

答案 1 :(得分: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 Web应用程序,它可以从控制台应用程序中正常工作。

答案 2 :(得分:0)

使用OAuth登录Facebook的情况:

从WPF WebBrowser导航至:

https://graph.facebook.com/oauth/authorize?client_id=zzzzzzzzzzzzzzzz&redirect_uri=https://www.facebook.com/connect/login_success.html&type=user_agent&display=popup

变化不大,我得到:该网页的导航已取消

在Chrome浏览器中,我可以看到原因:

{
   "error": {
      "message": "Can't load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and sub-domains of your app to the App Domains field in your app settings.",
      "type": "OAuthException",
      "code": 191,
      "fbtrace_id": "GuhAfeO/85U"
   }
}

为什么会发生?

上面的链接仅适用于空的“有效OAuth重定向URI”。添加URL以支持网站登录时,该应用程序停止运行。

我进入设置并删除了网址。现在工作! https://developers.facebook.com/apps/zzzzzzzzzzzzzz/fb-login/settings/