[.NET] 使用com元件 停止服務時產生問題

看板Programming作者 (振作迴圈)時間18年前 (2007/05/28 01:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 Visual_Basic 看板] 作者: offday (振作迴圈) 看板: Visual_Basic 標題: [.NET] 使用com元件 停止服務時產生問題 時間: Fri May 25 15:42:48 2007 目前的專案 是利用vb.net開發DLL來讓excel使用 不過這個DLL裡面又引用了一個別人開發的com元件 目前的作法是利用元件服務,註冊該com元件後 在DLL內使用 obj=CreateObject("XXXX.XXXX") 的方式產生物件 基本上作業都很正常 只是最後要關閉excel 就會產生 "COM Surrogate發生問題,必須關閉,謹此致歉。"這樣的錯誤訊息 雖然不會有啥大影響 但總還是想設法解決 原因應該是關閉excel的時候 我設定了 呼叫DLL中釋放該com元件的動作(也就是在元件服務裡面讓該元件圖示停止轉動) DLL內目前使用的方法是 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) 關鍵應該就是這句 如果不加上那句 關閉excel就不會有com surrogate的錯誤訊息 不過大概隔十分鐘後 還是會跳出來該錯誤訊息 (因為隔一段時間系統會去讓這個沒有被使用的元件停止轉動) 總之 簡單描述現在的問題就是 不論我用何種方法手動或是放著讓作業系統自動去釋放該com元件 都會產生"COM Surrogate發生問題,必須關閉,謹此致歉。"的狀況 想請問 這個com surrogate到底是幹麻的 還有如何解決這狀況呢 是我使用com元件的方式不對嗎 附帶一提 本來該com元件是在delphi的環境中使用的 一切正常 現在想要轉換到.net環境 結果就產生這狀況 有可能是本身.net架構的關係嗎 還是純粹是本人使用com元件的方式錯誤呢 -- 親愛的神~偉大的神~你可以笑我想法太過無知 但我只是~~~~~~~~~~~~~~~~~~~~~~人.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.66.239.186 -- 親愛的神~偉大的神~你可以笑我想法太過無知 但我只是~~~~~~~~~~~~~~~~~~~~~~人.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.144.49
文章代碼(AID): #16MRiO5c (Programming)