[問題] asp.net C# 中使用 webBrowser 抓畫面

看板C_Sharp作者 (口嫌體正直)時間17年前 (2008/04/28 10:49), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串1/1
我想輸入url 抓畫面變成圖片 輸出在網頁上 編譯無誤 但執行會出現下面的錯誤訊息 希望先進指點一下 謝謝! 錯誤訊息: 無法產生 ActiveX 控制項 '8856f961-340a-11d0-a96b-00c04fd705a2',因為目前的執 行緒不是在單一執行緒 Apartment。 描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯 誤的詳細資訊,以及在程式碼中產生的位置。 例外詳細資訊: System.Threading.ThreadStateException: 無法產生 ActiveX 控制項 '8856f961-340a-11d0-a96b-00c04fd705a2',因為目前的執行緒不是在單一執行緒 Apartment。 [ThreadStateException: 無法產生 ActiveX 控制項 '8856f961-340a-11d0-a96b-00c04fd705a2',因為目前的執行緒不是在單一執行緒 Apartment。] System.Windows.Forms.WebBrowserBase..ctor(String clsidString) +3653451 System.Windows.Forms.WebBrowser..ctor() +54 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.92.61

04/28 11:02, , 1F
COM+要求有UI的component都必須使用STA, 而Web Appl.是
04/28 11:02, 1F

04/28 11:02, , 2F
MTA的, 你要這樣call當然不行啦...
04/28 11:02, 2F

04/28 11:06, , 3F
那該怎麼做呢?
04/28 11:06, 3F

04/28 11:38, , 4F
我找到了
04/28 11:38, 4F

04/28 11:38, , 5F
ASP.NET 應用程式應該將 @ Page 指示詞的 ASPCompat 屬
04/28 11:38, 5F

04/28 11:38, , 6F
ASPCompat 屬性設定為 true,強迫網頁由 STA 執行緒集뀠
04/28 11:38, 6F

04/28 11:38, , 7F
STA 執行緒集區服務。
04/28 11:38, 7F

04/28 11:39, , 8F
謝謝
04/28 11:39, 8F

04/28 12:59, , 9F
另一個方法就是另寫一個Windows Service來處理, 讓網頁
04/28 12:59, 9F

04/28 13:00, , 10F
經IPC呼叫service自動抓畫面.
04/28 13:00, 10F
文章代碼(AID): #185JiXVe (C_Sharp)