关于写华为信息机WebService,接口不能初始化,老是报-1002错误!!!
xzsnj 2008-07-11 09:33:40 //----------接口初始化函数-----------------------------
[DllImport("SMEntry.dll")]
public static extern int SP_Startup(string DBName, string Account, string Password);
//接口释放函数
[DllImport("SMEntry.dll")]
public static extern void SP_Cleanup();
//短信单发函数
[DllImport("SMEntry.dll")]
public static extern int SubmitShortMessage(string AtTime, string SourceAddr, string DestAddr, string Content, uint ContentLen, int NeedStateReport, string ServiceID, string FeeType, string FeeCode);
//单条发送整个过程包装,包括初始接口,发送短信,释放接口,返回错误编码
[WebMethod]
public int MAS_SendShortMessageEX(string Account, string Password, string Mobile, string Message)
{
int ret;
string s_insert; //插入数据库使用变量
string s_ip = "211.113.34.333";//这是接口内部使用数据库的服务器名称,可以是企业信息机数据库所在的机器名称或IP地址(为了保密以改IP)
string s_sttime = System.DateTime.Now.ToString();//发送短信的时间
string s_sourceaddr = "106573512345";//企业信息机的号码,即卡号
ret = SP_Startup(s_ip, Account, Password);///就是在这里报-1002错误
if (ret == 0)
{
ret = SubmitShortMessage(s_sttime, s_sourceaddr, Mobile, Message, (uint)Encoding.Default.GetBytes(Message).Length, 1, "EIE", "01", "1");
//将用户发送成功信息插入本地数据库
if (ret == 0)
{
int mobile_len;
if ((uint)Encoding.Default.GetBytes(Message).Length % 140 != 0)
{
mobile_len = (int)Encoding.Default.GetBytes(Message).Length / 140 + 1;
}
else
{
mobile_len = (int)Encoding.Default.GetBytes(Message).Length / 140;
}
s_insert = "insert into massend(id,ts,sendtime,sourceaddr,sendnum,sendmobile) values(newid(),newid(),'" + s_sttime + "','" + Account + "','" + mobile_len + "','" + Mobile + "')";
SqlConnection connect = new SqlConnection(connectstring);
connect.Open();
SqlTransaction mytrans = connect.BeginTransaction();
SqlCommand command = new SqlCommand(s_insert, connect);
try
{
command.ExecuteNonQuery();
mytrans.Commit();
}
catch (SqlException SqlEx)
{
mytrans.Rollback();
}
finally
{
command.Dispose();
connect.Close();
}
}
}
SP_Cleanup();
return(ret);
}
就是在调用初始化接口函数老是报-1002(访问短信平台数据库时出错,在初始化时出现该错误通常是因为提供的数据库服务器名称、用户名或者密码不正确。)
需要说明的是,移动的华为信息机开放的端口是8080,而不是80端口。我也实验过将:
SP_Startup("211.113.34.333:8080", Account, Password)还是不行!如果要将华为的SMEntry.dll注册的话,会抱错,不能注册。
现在不知道是我程序里问题还是怎么了?希望得到大家的帮忙!