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了,为什么?
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();