我在等待ajax更改时Webbrowser出错

时间:2015-10-05 05:07:48

标签: c# webbrowser-control innerhtml

我有一个项目,可以从网络上读取内容并将其保存到数据库中。

我使用Timer控件等待ajax更改,并且它已经工作了很长时间没有任何问题。

但出乎意料的是它不再起作用了。我收到以下错误:

  

抛出异常:' System.Runtime.InteropServices.COMException'在   SnapshotInfo.exe

     

其他信息:错误HRESULT E_FAIL已从a返回   调用COM组件。

有关此问题的部分代码:

    WebBrowser _browser = new WebBrowser();
    private void Form1_Load(object sender, EventArgs e)
    {
        _browser.Dock = DockStyle.Fill;
        _browser.DocumentCompleted += _browser_DocumentCompleted;
        Controls.Add(_browser);
    }

    private void _browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

        if (!timer1.Enabled)
        {
            // do any thing
        }

    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        _browser.Dispose();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (_browser.Document==null || _browser.Document.Body==null) return;
        var body = _browser.Document.Body.InnerHtml; // ----> error here
        if (body.Contains("word"))
        {
            // code when word is exist
            timer1.Enabled = false;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        _browser.Navigate(textBox1.Text);
        timer1.Enabled = true;
    }

我不知道问题出在哪里?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

确保您使用的是最新版本的网络浏览器控件,请查看以下链接

Use latest version of Internet Explorer in the webbrowser control

或者您可以使用其他网络浏览器引擎替换网络浏览器控件,例如http://www.awesomium.com/它免费且更易于使用

答案 1 :(得分:0)

删除安全更新KB3087040解决了问题!