本文主要是介绍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。
此处附上我写的代码:
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;
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;
}
}
这篇关于C# RTX的二次开发(Web服务)WebService 给某人发送消息提醒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!