原文:https://blog.csdn.net/ervinsas/article/details/36424127
最近幾天被搞得焦頭爛額,由于DCOM客戶端程序是在32位系統下開發的,調試時DCOM服務端也是安裝在同一臺機器上,所有過程一直還算順利。可這次項目實施的時候,采購的一臺服務器只能安裝2008 64位,DCOM服務端必須安裝在此服務器上(DCOM服務端程序有32位和64位的,沒問題),這就導致一個問題了,DCOM客戶端是32位的,無法在64位系統上運行,如果要重寫64位的DCOM客戶端程序,由于其依賴的模塊太多,修改非常繁瑣,所以就想將DCOM客戶端程序運行在32位操作系統上進行遠程調用64位上的DCOM服務。可在調試過程中,總是報告“拒絕訪問”權限不夠問題。查閱了網上各種資料,各種試,還是未能成功,最終自己查看DCOM服務端的系統事件查看器日志錯誤信息,摸索著終于解決了,在此特作說明,網上高手的資料并非完全錯誤,只是都不完全而已,還是給了我很大的幫助,非常感謝大家的無私啊。。。
? ? ? ? 下面將我的方法完整的記錄下來,以備參考,該方法已在2008 32 64位系統下測試通過:
?
一、全局條件
?
1、 服務端與客戶端要在同一局域網內,且處于同一網段。
2、 服務端與客戶端均要啟用Guest賬號。
3、 服務端與客戶端均要用Administrator賬號登陸,且登陸密碼要設置為相同。
4、 關閉服務端和客戶端的防火墻。
5、 通過ping命令測試服務端和客戶端網絡連接正常。
6、服務端和客戶端都能夠成功訪問對方的共享文件夾。
?
二、服務端配置
A、DCOM配置
?
1、 “開始 -> 運行”,鍵入“dcomcnfg”命令,開啟“組件服務”配置。
2、 左側導航欄展開“組件服務 -> 計算機 -> 我的電腦”,右鍵單擊“我的電腦”,選擇“屬性”菜單,彈出“我的電腦屬性”配置框。如果單擊“我的電腦”沒有“屬性”菜單,則需要在系統服務管理器中將“DistributedTransaction Coordinator”服務開啟。
3、“默認屬性”頁面,勾選“在此計算機上啟用分布式COM(E)”,“默認身份驗證級別”選擇“連接”,“默認模擬級別”選擇“標識”。
4、“COM 安全”頁面,點擊“訪問權限”區域里的“編輯限制”按鈕,彈出“訪問權限”設置框,添加“Administrators、Everyone、Guests、INTERACTIVE、ANONYMOUS LOGON”賬號,允許所有賬號的所有權限,點擊“確定”按鈕。同樣點擊“啟動和激活權限”區域里的“編輯限制”按鈕,彈出“訪問權限”設置框,添加“Administrators、Everyone、Guests、INTERACTIVE、ANONYMOUS LOGON”賬號,允許所有賬號的所有權限,點擊“確定”按鈕。
?
5、 點擊“我的電腦屬性 -> 確定”,完成配置。
6、左側導航欄“組件服務 -> 計算機 -> 我的電腦 -> DCOM 配置”,選擇目標服務(此處以“EADS TETRA Connectivity Server API, Release 5.5”一項為例),郵件選擇“屬性”菜單,在彈出配置框的“常規”頁面的“身份驗證級別”選擇“連接”。
?
7、 “位置”頁面,如果“在此計算機上運行應用程序”復選框可選,則選上。
8、“安全”頁面,“啟動和激活權限”區域,選擇“自定義”,點擊“編輯”按鈕,添加“Administrators、Everyone、INTERACTIVE、ANONYMOUS LOGON”賬號,允許所有賬號的所有權限,點擊“確定”按鈕。同樣“訪問權限”區域,選擇“自定義”,點擊“編輯”按鈕,添加“Administrators、Everyone、ANONYMOUS LOGON”賬號,允許所有賬號的所有權限,點擊“確定”按鈕。
?
9、 “標識”頁面,選擇“交互式用戶”。點擊“確定”完成配置。
?
B、策略配置
?
1、“開始 -> 管理工具-> 本地安全策略”,開啟“本地安全策略”配置。
2、點擊左側導航欄“本地策略 -> 審核策略”,右側策略列表中,右鍵點擊“審核登陸事件”選擇“屬性菜單”,“本地安全設置”頁面,勾選“成功”、“失敗”復選框,點擊“確定”按鈕退出。相同的方法設置“審核對象訪問”和“審核特權使用”。
?
三、客戶端配置
客戶端配置就簡單了,基本不用配置,只要將依賴的COM注冊一下就可以了。
?
另:如果還是不行,那就悲哀了,只能借助服務端系統事件查看器日志,摸索解決了。。。