RTX二次开发问题
RTX二次開發問題
?(2009-09-18 11:38:56) 轉載 標簽: rtx | 分類:rtx二次開發 |
問題:
RTX二次開發運行代碼
? RootObj = new RTXSAPIRootObj();? ? //創建根對象
出現錯誤
檢索 COM 類工廠中 CLSID 為 {79210E58-99EB-45D0-8890-763EFEAA143F} 的組件時失敗,原因是出現以下錯誤: 80040154。
原因是:
可能遇到的問題:
1.? 調用com+的時候,對COM 組件的調用返回了錯誤 HRESULT E_FAIL
原因:調用rtx組件實現登陸的時候,需要對NTFS文件夾進行權限配置
解決辦法:
1. 在控制面板--->管理工具--->服務 中,開啟Distributed Transaction Coordinator 服務。
2. 打開控制面板--->管理工具--->組件服務--->選擇計算機--->我的電腦--->右擊屬性--->選擇MSDTC--->選擇安全配置勾選事務管理器通信中的允許出站、允許入站和不要求進行驗證。
如下圖所示:
重啟IIS
實例文檔:
RTX服務端提供了2個接口,RTXServerApi和RTXSAPILib。RTXServerApi主要用于和以前的老RTX版本結合,兼容RTX舊版本接口,現在不開發了,不建議使用。RTXSAPILib實現了RTXServerApi的所有接口,并附帶開發了一些新功能,所以基于RTX的開發,建議使用。
1.??????? 在服務端發送消息
這個實例我們采用RTXSAPILib,如果是asp.net的開發,需要導入Interop.RTXCAPILib.dll,Interop.RTXClient.dll,Interop.RTXSAPILib.dll這3個dll,在安裝目錄下可以找到。使用這個對象之前需要設定它的ip和端口,設置好后,可以利用消息提醒方法給任何一個指定的人發短信。具體代碼如下:
RTXSAPILib.RTXSAPIRootObj RootObj;? //聲明一個根對象
??? public RtxUtil()
??? {
??????? string RTXConnString = ConfigurationSettings.AppSettings["RTXconnString"].ToString();
??????? string[] RTXarg = RTXConnString.Split(';');
??????? RootObj = new RTXSAPIRootObj();???? //創建根對象
??????? RootObj.ServerIP = ((string[])(RTXarg[0].Split('=')))[1]; //設置服務器IP
??????? RootObj.ServerPort = short.Parse(((string[])(RTXarg[1].Split('=')))[1]); //設置服務器端口
??? }
???
??? public void sendMSG(string txtReceivers, string txtMsgTitle, int txtTime, string txtMsgContent)
??? {
??????? try
??????? {
??????????? RootObj.SendNotify(txtReceivers, txtMsgTitle, txtTime, txtMsgContent); //發送信息
??????? }
??????? catch (Exception xe)
??????? {
??????? }
??? }
2.?????? 組織機構同步
這個功能我們采用RTXServerApi這個對象,需要使用的分對象有RTXObjectClass,RTXCollectionClass,需要使用的方法有Call2,同樣在使用時需要制定根目錄對象的IP和端口。其實組織機構同步原理是用集合對象去讀取XML里面的數據,所以你得把組織機構先生成一個xml,然后以DATA的方式放到集合對象中,最后調用CALL2把數據讀進去放到rtx中,這樣就可以了。
具體代碼如下:
RTXServerApi.RTXObjectClass RTXObj = new RTXObjectClass();? //創建一個業務邏輯對象
??????????? RTXServerApi.RTXCollectionClass RTXParams = new RTXCollectionClass();// 創建一個集合對象
?
??????????? RTXObj.Name = "USERSYNC";? //業務邏輯對象名稱為用戶同步類別
??????????? RTXParams.Add("MODIFYMODE", 1);
??????????? RTXParams.Add("DATA", textBox1.Text);
???????????????????? 這里textBox1.Text里的內容實際上時一個xml的所有數據。
??????????? try
???? ???????{
??????????????? RTXObj.Call2(enumCommand_.PRO_SYNC_TO_RTX , RTXParams);
??????????????? MessageBox.Show("導入成功");
??????????? }
如果遠程訪問其他服務器的Rtx組件包,需要以下步驟:
?
1.?????? 在本服務器上安裝Rtx的Sdk和服務管理器(需要里面的組件,因為找不到具體是什么組件),然后再卸載他們。
2.?????? 在rtx服務器進行設置,如:你的服務器的IP是192.168.1.156,那么需要把這個IP設置到Rtx服務器里,讓它允許你訪問它的組件。
具體做法是:
(1)打開Rtx的安裝目錄下的AppConnConfig.xml,這個配置文件用于應用程序連接,(2)在文件的<IPLimit Enabled="1">下加<IP>192.168.1.156</IP>。
(3)從啟Rtx服務
3.?????? 如果Rtx服務器開了防火墻,需要在網上鄰居打開8006端口
4.?????? 測試,用telnet <rtx服務器IP> 8006命令,如果出現黑屏小花,說明配置成功。
轉載于:https://www.cnblogs.com/qxw0816/archive/2010/04/07/1706051.html
總結
- 上一篇: 计算机图形学——大作业
- 下一篇: 怎样做小游戏挖金子(VC,源码5)