2011-07-27 44 views
1

我有一個C#WinForms應用程序,具有WebBrowser控件,它加載在其中嵌入第三方ActiveX對象,發揮IPTV視頻的HTML網頁。由Exterity提供的Active X。我也嘗試過VLC ActiveX控件,它更加不可靠,並且有相同的症狀。在XP和Win7上都有相同的行爲。ActiveX控件在web瀏覽器中的WinForms崩潰整個應用程序

間歇整個WinForms應用程序退出。我已經處理ThreadException和UnhandledExcetion事件:

[STAThread] 
static void Main(string[] args) 
{ 
    //set up global exception handling 
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); 
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 

這些事件在應用程序退出前不會觸發;並相信我,他們確實工作,因爲他們已經存在了幾年,並且多次發現了其他錯誤(例如超時數據庫連接)(此時我重新啓動了整個應用程序)!我在Windows事件視圖中看不到任何條目。我的exe過程就消失了。

我一直在閱讀了關於應用程序域,並想知道我是否可以把WebBrowser控件在一個單獨的一個主程序/表;任何建議讚賞。

還是有其他的方法,我可以處理,我推測是,這是所有的方式去未處理的頂端,此時進程退出異常。

回答

1

試圖捕捉和忽略訪問衝突是引入內存貪污腐敗的妙方,可以破壞你的應用程序的數據和設置。你最好搞清楚爲什麼 ActiveX控件崩潰(例如使用WinDBG)並解決這個問題。

+0

如果我能趕上訪問衝突,我會很高興地重新啓動與Application.Restart()整個應用程序。我希望這會讓我擺脫那次會議上進一步的記憶腐敗;這可能會導致永久性的重新啓動,但是這比整個過程退出更好。 (乾杯的偉大fiddler2!) – Russell

+0

我提供的WinDBG日誌到ActiveX對象的開發商,他們正在「尋找到它」。 :-) – Russell

相關問題