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个接口,RTXServerApiRTXSAPILib。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命令,如果出现黑屏小花,说明配置成功。

posted @ 2010-04-07 10:40  指尖舞者  阅读(6465)  评论(1编辑  收藏  举报