似乎有很多對DCOM的敵意,我很想理解爲什麼。對於仍然使用C++寫入Win32 SKD的公司,是否有真正的理由不在當前或未來的開發中使用DCOM? Windows的某些未來版本不會支持它嗎?它太脆弱,不能經常工作嗎?與其他技術相比,實施太複雜了嗎?這是怎麼回事?DCOM有什麼問題?
回答
那麼,DCOM是COM的一個分佈式版本,COM本身非常複雜,並且很容易在無意中做錯事情(參見this recent question及其答案)。有了DCOM,你就有更多的方法來傷害自己。
除此之外,它的工作原理,例如一個好的方式來託管在一個獨立的進程中的COM組件。
如果你理解指針和引用計數器,我實際上會發現COM是相當易於理解和簡單化的。 – Charles 2009-12-04 14:51:38
相信我,IUnknown成員函數只是開始。然後來公寓,併發和其他可能導致可怕痛苦的東西。 – sharptooth 2009-12-04 15:10:39
那麼你會推薦一個需要溝通的本地win32 SDK服務和客戶端應用程序?是的,DCOM很複雜,但填補這些需求的技術卻不是什麼? – Charles 2009-12-04 15:15:41
我在90年代後期實現了一個使用DCOM的大型系統。雖然它工作得很好,但有幾個問題。對於初學者來說,它使用不可預知的端口號進行通信。它不可擴展,並且使用WCF比使用DCOM好得多。
不幸的是,我們僅限於Win32 SDK - 不允許.NET。我知道,我知道但我沒有制定規則 – Charles 2009-12-04 14:49:48
我仍然相信你可以使用Web服務 - 我非常確定C++有SOAP包。 – 2009-12-04 16:45:56
如果您嘗試構建客戶端服務器應用程序並希望通信跨越網絡邊界(例如Internet),則DCOM可能因防火牆而出現問題。
我已經在其上使用DCOM分佈非常成功的服務器應用程序的工作,我們讓系統處理最複雜的創建COM +服務器應用程序和導出應用程序代理。在這種情況下,只要我們所有的版本都同步起來,它就可以很好地工作。
我忘記提及我們的客戶端和服務器是同一臺機器的本地服務器,它們都是由我們編寫並部署在一起的,所以沒有網絡或同步問題。 – Charles 2009-12-04 14:55:39
我不喜歡COM/DCOM,因爲"Catastrophic failure"
是在錯誤信息的歷史上最無用的錯誤消息。
這將是用戶的「感覺良好」信息。這樣他們知道他們做得對。 – Jrud 2009-12-04 14:45:29
ERROR_ALREADY_EXISTS歸納起來。 – ActiveTrayPrntrTagDataStrDrvr 2014-01-09 12:37:51
- 安全模型。特別是當計算機不在同一個域中(或根本不在域中)時。
- 爲Visual Basic(原始,不是.NET)建模的自動接口,過時並且不適合從其他語言使用。
如果你只想用C++開發並部署在受控網絡中,它可能仍然是一個不錯的選擇。
跨本地操作系統邊界(另一臺機器上的任何內容)的安全問題無法得到足夠的重視。 「管理」DCOM安全性是完全不可能的。 (祝你好運,試圖追查錯誤或解釋錯誤信息。) – 2013-03-11 09:57:36
- 1. SocketConnection與DCOM連接有什麼區別
- 2. INT32_MIN/-1有什麼問題?
- 3. 代碼有什麼問題
- 4. iptables ......有什麼問題
- 5. 「time.sleep(length)」有什麼問題?
- 6. 腳本有什麼問題?
- 7. realloc有什麼問題?
- 8. PrintWindow有什麼問題?
- 9. toDateString有什麼問題
- 10. JCL這有什麼問題?
- 11. Rails.env有什麼問題?
- 12. 這裏有什麼問題?
- 13. java.lang.NullPointerException,有什麼問題?
- 14. ToLowerInvariant()有什麼問題?
- 15. gcc 4.9.1有什麼問題?
- 16. Scope_Identity有什麼問題?
- 17. PHP - 這有什麼問題?
- 18. levelBaseStart有什麼問題?
- 19. 計數有什麼問題
- 20. 代碼有什麼問題
- 21. golang regexp.matchString有什麼問題?
- 22. 此RegExp有什麼問題?
- 23. `std :: set`有什麼問題?
- 24. 「.replace」有什麼問題?
- 25. 這裏有什麼問題
- 26. 代碼有什麼問題?
- 27. cloudinary.uploader.upload python有什麼問題?
- 28. DateTime.Parse(myString)有什麼問題?
- 29. File.Exists有什麼問題?
- 30. User.Identity.Name有什麼問題
everything;)(只是在開玩笑) – 2009-12-04 14:42:29