C# RTX的二次开发(Web服务)WebService 给某人发送消息提醒

这两天研究了一下rtx二次开发,用WebService接口实现rtx方法的调用。服务器系统是Windows Server 2003,开发环境使用的C#2010,RTX版本为2013(8.3.612.1)
RTX管理端、RTX客户端、SDK安装包都可以到官网上下载到。为避免我这个忘性大的人过两天又忘了,我在这里整理记录下来,也供大家参考参考。本人拙见,欢迎指正。
1、我这边的rtx服务端是安装在服务器上,rtx有一个限制,如果调用rtx接口需要修改rtx服务端的两个文件AppConnConfig.xml、SDKProperty.xml,

修改AppConnConfig.xml

<?xml version="1.0"?>
<Property>
<APIClient>
    <IPLimit Enabled="1">
        <IP>127.0.0.1</IP>
                <IP>开发机器的IP(192.168.168.xxx)</IP>
    </IPLimit>
</APIClient>
</Property>

修改SDKProperty.xml

<?xml version="1.0"?>
<Property>
<APIClient>
    <IPLimit Enabled="1">
        <IP>127.0.0.1</IP>
                <IP>开发机器的IP(192.168.168.xxx)</IP>
    </IPLimit>
</APIClient>
<sdkhttp>
    <IPLimit Enabled="1">
    </IPLimit>
</sdkhttp>
</Property>

因为我的应用程序中需要调用RTX接口给其他人发消息,所以为了方便,不用添加多个IP地址,我选择用WebService调用RTX方法,在用应用程序去调用WebService接口。这样,仅需要添加WebService 接口所在机器的IP地址,就能实现我的目的。

2.写开发程序过程:
需要注意的是
1.开发机器需要安装服务端的SDK程序,安装后目录为RTXSSDK,这里边有我们需要引用的Interop.RTXSAPILib.dll文件,有了它才能实现与RTX服务器的通信。
2.我也遇到过如下错误:
这里写图片描述

如果写的是窗体程序,需要设置平台为32位,在项目-属性-生成-目标平台-选择x86。
如果写的是WebService,需要在IIS的应用程序池中的默认设置双击,启用32位应用程序选择true。
不要忘了引用Interop.RTXSAPILib.dll文件。
此处附上我写的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using RTXSAPILib;
using System.Data;
using System.Configuration;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Services.Protocols;


/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {


    public WebService () {


        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }


    public Authentication identity;
    [System.Web.Services.Protocols.SoapHeader("identity")]


    [WebMethod(Description = "RTX发送消息")]
    public string sendMessage(String Ip, short Iport, Authentication identity, string receiverAccount, string title, string holdtime, string content)
    {
        if(identity.ValideUser(identity.UserName,identity.Password))
        {


        string retval;
        try
        {
        //初始化服务器属性
        RTXSAPILib.IRTXSAPIRootObj RootObj;
        RootObj = new RTXSAPIRootObj();
        //创建根对象
        RootObj.ServerIP = Ip;//服务器IP地址
        RootObj.ServerPort = Iport; //设置服务器端口
        RootObj.SendNotify(receiverAccount, title, 0, content); //获取版本信息
            retval = "1";
            return retval;
        }
        catch (Exception ex)
        {
            retval = ex.Message;
            return retval;
        }
        }
        else
         return "您没有权限访问该网站!";

    }

}


public class Authentication : SoapHeader
{
    public Authentication()
    { 

    }
    public string UserName;
    public string Password;
    public bool ValideUser(string in_UserName, string in_PassWord)
    {
        if ((in_UserName == "user") && (in_PassWord == "666666"))
            return true;
        else
            return false;
    }
}

2.在服务器端设置IIS,新建网站,右键网站,点击管理网站,高级设置,应用程序池选择ASP.NETv4.0,端口设置80,将默认网站停止,启动该网站,设置网站默认的物理地址,选中网站文件夹转化为应用程序。在浏览器中输入地址连接测试,此处不做详细说明。
我想说一下Windows Server2003服务器上的IIS设置。
1.使用IIS的时候需要确认是否有ASP.NETv4.0,没有的话需要安装,重启IIS。
2.然后找到网站,右键属性应用程序池选择.NET4.0,端口设置80,同上,只不过网站文件夹不是转化为应用程序,而是新的虚拟目录。下面还有一些重要的设置,转自http://www.jb51.net/article/37739.htm

网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程:
1.官网下载.net framework4.0,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718,或者到脚本之家下载(http://www.jb51.net/softs/69112.html),下载后安装.安装后,原有.net 2.0网站的Asp.Net Version会出现自动升级到4.0的情况,所以记得改回2.0。

2.修改IIS的web服务扩展,默认安装后的ASP.NET v4.0.30319是禁止的,要修改为允许, 如下图;不然就会出现访问网页的时候,出现找不到该页404的错误;

这里写图片描述

3.为4.0程序创建应用程序池,2.0和4.0网站不能共用一个应用程序池,不然会在我的电脑—右键–管理–系统工具–事件查看器—应用程序中出现如下图的错误。
这里写图片描述

通过Internet信息服务—我的应用程序池—新建—应用池,弹出如下图:
这里写图片描述

4、新建.Net 4.0的网站,在主目录勾选应用程序池,如下图
这里写图片描述

并在Asp.net处勾选Asp.Net version为4.0;

5、这时候访问2.0和4.0网站出现service unavailable的情况,查看事件查看器报如下错误: HTTP 筛选器 DLL v4.0.30319\aspnet_filter.dll 加载失败。数据是错误;通过查找文档发现,有人用Process Monitor工具监视一下w3wp.exe的文件访问,发现C:\Windows\System32\MSVCR100_CLR0400.dll 这个文件没有权限,那么找到这个文件,做如下图操作:添加IIS
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值