[.NET] 使用com元件 停止服務時產生問題
※ [本文轉錄自 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