关于写华为信息机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注册的话,会抱错,不能注册。
现在不知道是我程序里问题还是怎么了?希望得到大家的帮忙!
...全文
702 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayurep 2010-11-26
  • 打赏
  • 举报
回复
我也有这问题,QQ293421010交流下呀,我用自带的deom都初始化不了。
a8352081 2010-04-20
  • 打赏
  • 举报
回复
文件需要放在system32下,放bin目录下有时会这样
吴道子真人 2009-07-22
  • 打赏
  • 举报
回复
你的问题解决了吗?我也正做一个这样的服务,遇到的问题跟你的类似,正愁呢!
izee 2009-04-22
  • 打赏
  • 举报
回复
SP_Startup方法的三个参数
分别是数据库服务器地址,数据库操作账号,登录密码
跟Web程序没有任何关系
accpedu 2009-04-18
  • 打赏
  • 举报
回复
楼主在不?
Jeffrey_Wang 2008-07-28
  • 打赏
  • 举报
回复
他们ip与端口间是逗号隔开的。
SP_Startup("211.113.34.333,8080", Account, Password)
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 viki117 的回复:]
去找供应商啊。。现在不就是客服的用武之地
[/Quote]

我们做移动的webserives,不是我们自己买信息机,不然我早就问了!快要崩溃了。
viki117 2008-07-11
  • 打赏
  • 举报
回复
去找供应商啊。。现在不就是客服的用武之地
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
现在是换那个ip都是报-1002错误,不知道连接成功没有!郁闷
ericzhangbo1982111 2008-07-11
  • 打赏
  • 举报
回复
ret = SP_Startup(s_ip, Account, Password);///就是在这里报-1002错误

这里放你自己的ip地址和端口
如果能连接上
就是端口
和防火墙什么之类的东东
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ericzhangbo1982111 的回复:]
给你出个主意
你把你的机子的ip地址方过去
看看能不能连接上
[/Quote]

能说详细点吗?我们公司专门放了一台服务器在移动哪里,因为他们是制定IP才能访问那个信息机!
ericzhangbo1982111 2008-07-11
  • 打赏
  • 举报
回复
给你出个主意
你把你的机子的ip地址方过去
看看能不能连接上
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
呵呵,密码用户IP都没有问题,我可以直接登录华为提供的web登录平台的,不过他是8080端口,原来的是默认80端口。不知道原因是不是这里,至于问写这个dll文件的人肯定是不可能的了,因为我们是自己做一个webservice来访问信息机,不是我们自己的买了信息机,所以也就没有办法问了!
ericzhangbo1982111 2008-07-11
  • 打赏
  • 举报
回复
确认密码和用户名正确不正确
然后看看ip地址正确不正确

别的只能问开发
SMEntry.dll的这个人了
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
郁闷,怎么没有人了呢
xzsnj 2008-07-11
  • 打赏
  • 举报
回复
有没有牛人搞过这个问题啊!

好几天了,都快郁闷完了。现在都不知道到底连上去没有,那台ip都报-1002错误,不知道到底通信成功没有,都没有办法测试

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧