zoukankan      html  css  js  c++  java
  • 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命令,如果出现黑屏小花,说明配置成功。

    我走啊走 走啊走......
  • 相关阅读:
    2020年封装APP之详解
    Linux 强制卸载硬盘 (Device is busy)
    pacman 非交互状态使用
    Snakemake 修改默认工作目录
    LaTeX 表格排版中遇到 Misplaced oalign
    重启崩溃的 KDE
    python robot.libraries.BuiltIn import BuiltIn库
    logging 常用配置
    paramiko 获取远程服务器文件
    物理时间使用Python脚本转格林卫时间
  • 原文地址:https://www.cnblogs.com/qxw0816/p/1706051.html
Copyright © 2011-2022 走看看