2010-01-15 85 views
1

我有一個類庫代碼,它使用System.Windows.Forms.WebBrowser控件來加載一個網頁,然後從DOM樹中提取信息等...我發現這是唯一可靠的辦法能夠解析加載到使用javascript等頁面信息...c#asp.net使用Windows窗體WebBrowser

這與控制檯應用程序進行測試時工作得很好,但是當我調用相同的方法從一個asp.net頁面(ASP.NET MVC控制器)它崩潰與「ActiveX控件」8856f961-340a-11d0-a96b-00c04fd705a2'無法實例化,因爲當前線程不在單線程的公寓。「...我試過添加[STAThread]我的方法,但這似乎沒有幫助!

任何想法?

感謝

更新:

我需要讓一個頁面完成加載並執行其所有的JavaScript,然後搜索它,我已經保存的模板匹配的文本......不要以爲HtmlAgilityPack將工作? WatIn是否運行JavaScript?

回答

0

我相信不可能讓IIS在單線程單元模型(STA)中運行。除了使用WebBrowser控件,你可以看看在HTML Agility Pack。它會讓你在網頁中閱讀並在DOM周圍徘徊。 WebBrowser控件使用大量的計算機資源,您不必擔心它使交換機。在System.Windows

0

一切是爲臺式機,而不是網頁的東西。我同意傑克皮爾森你應該使用別的東西。但是,如果你願意,你可以嘗試強制頁面進入STA模式下使用這個指令:

<%@Page AspCompat="true"%> 

http://msdn.microsoft.com/en-us/library/zwk9h2kb.aspx