2 donghangdh12 donghangdh12 于 2014.08.14 14:15 提问

asp.net使用WebBrowser,DocumentCompleted重载sender参数为null
public partial class WebForm1 : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string url = "网站地址";
            WebBrowser wb = new WebBrowser();
            wb.Url = new Uri(url);
            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);//添加document加载完毕委托事件
        }
    }

    void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        HtmlDocument doc = ((WebBrowser)sender).Document;//进入事件后,sender的document属性为null,为什么会为null?
        ((WebBrowser)sender).Dispose();
    }
}

我就是想在asp.net里面通过winfrom中强大的webbrowser来获取html的DOM对象。但是经过测试,在进入委托事件之前,webbrowser已经有了document属性值了,但是ReadyState属性还是loading,当页面加载完毕后Complete,执行委托时间后,document的属性值却变成null了,为什么?

1个回答

qq_20354713
qq_20354713   2015.09.16 13:54
WebBrowser wb = new WebBrowser(); 就应该出错了
    /”应用程序中的服务器错误。

当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Threading.ThreadStateException: 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。

源错误:

行 16: {
行 17: string url = "网站地址";
行 18: WebBrowser wb = new WebBrowser();

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!