用VB6来调用webservice的方法

hgs5945 2007-08-08 10:07:09
代码如下:
我已经添加了SOAP3.0的引用,webservice是.NET写的
.....................................
Dim data() As Byte
Dim PropertyData() As Variant
Dim ss As New SoapClient30
Set ss = CreateObject("mssoap.SoapClient30")
Call ss.MSSoapInit("http://file1.99.com/99Interface/99InterfaceService.asmx?WSDL")
Call ss.Send(data, "UID", "PWD", "Send_Num", "", 0, 0, "收件人", "发送人", "接收公司", "2007-03-14 13:06:01", "ccc.doc", PropertyData)

...................................................
用VB6来调用webservice的方法Send,可是就是有错误。错误编号是:-2147467259;错误描述为:System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Interface.99.99InterfaceService.Send(Byte[] fs, String User_id, String Passwd, String Send_Num, String Send_Csid, Int32 RESEND_TIMES, Int32 RESEND_DELAY, String Receiver, String Sender, String TO_COMPANY, String SendTime, String SendFile, PropertyData[] details) in d:\99\web\99Interface\App_Code\99InterfaceService.cs:line 425
--- End of inner exception stack trace ---


Send方法的原形是:Send(Byte[] fs, String User_id, String Passwd, String Send_Num, String Send_Csid, Int32 RESEND_TIMES, Int32 RESEND_DELAY, String Receiver, String Sender, String TO_COMPANY, String SendTime, String SendFile, PropertyData[] details)

请问这个错误怎么解决呀?麻烦帮帮忙,谢谢
...全文
1075 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgs5945 2007-09-14
  • 打赏
  • 举报
回复
再来些高手帮看看吧!!!!
vbman2003 2007-08-30
  • 打赏
  • 举报
回复
如此的确有难度,帮顶学习
hgs5945 2007-08-29
  • 打赏
  • 举报
回复
我测试过,错误好像就是在最后一个参数也就是PropertyData[] details这里;在webservice里是PropertyData是以下这样定义的:
.....................................................
[System.Xml.Serialization.SoapTypeAttribute(Namespace = "http://soap.model.service.fax99.com")]
public class PropertyData
{
public PropertyData()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public string dataName;

public string dataValue;
}

.....................................

那在VB6在我该怎么对应定义PropertyData数组然后做参数应用呢???
CAnders 2007-08-26
  • 打赏
  • 举报
回复
to vbman2003(家人)
不会少了END,我在本机测试通过,到客户那边就出现的这个问题,我怀疑是跟系统环境有关系?
vbman2003 2007-08-24
  • 打赏
  • 举报
回复
反正从提示看是参数问题,除了变量命名外,还要检查参数的数据类型,VB和.NET数据类型有不同这处,要一一对应的上......

下班......
vbman2003 2007-08-24
  • 打赏
  • 举报
回复
我的意思就是WEBSERVICE中的方法名称最好修改成别的,data是VB的保留字,send不能确定,当然不能修改也只好用它了,还有PropertyData也是,.NET Framework 类库中有 PropertyData 属性。我觉得这些命名都是问题,你修改了测试一下吧。总之这样的代码过程上应该是没有问题的。
hgs5945 2007-08-24
  • 打赏
  • 举报
回复
请问:vbman2003(家人)
我在microsoft soap type library也试过,一样出现问题
send方法是WEBSERVICE的send方法,名字应该和它一样吧????
vbman2003 2007-08-24
  • 打赏
  • 举报
回复
楼上,不是提示缺少End吗?是不是if语句或者for语句不完整
CAnders 2007-08-24
  • 打赏
  • 举报
回复
我用asp调用java开发的web service出现以下的错误:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Connector 错误 '800a1521'

Connector:Host not found. HRESULT=0x800A1521 - Client:An unanticipated error occurred during the processing of this request. HRESULT=0x800A1521 - Client:Sending the Soap message failed or no recognizable response was received HRESULT=0x800A1521 - Client:Unspecified client error. HRESULT=0x800A1521

/weih/userMod.asp,行65

谁知道怎么回事?代码如下:

SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient30")
Set Connector = Server.CreateObject("MSSOAP.HttpConnector30")
Connector.Property("Timeout") = "99999999"
objSoapClient.ClientProperty("ServerHTTPRequest") = True

' 下面的链接需要修改为我们具体网站的链接
Call objSoapClient.mssoapinit("http://10.151.128.35/yhtbws/tb/diaodb.jws?WSDL=", "diaodb")
' 使用SOAP对象调用Web Service函数
CalculateDiscount = objSoapClient.getfc("a","a","b","c","add")


best8625 2007-08-22
  • 打赏
  • 举报
回复
JF
vbman2003 2007-08-22
  • 打赏
  • 举报
回复
试试在VB中引用microsoft soap type library

  Dim oSC As New SoapClient
Dim buff() As Byte '不要用data作变量名称
'......
oSC.ClientProperty("ServerHTTPRequest") = True
oSC.mssoapinit ("http://file1.99.com/99Interface/99InterfaceService.asmx?WSDL")
Call oSC.youSend(buff,......) '不要用send作方法名称
Set oSC = Nothing

你的问题个人认为是变量命名不符合命名规范
flyinsky333 2007-08-17
  • 打赏
  • 举报
回复
看看这编文章: http://8g5djj6we67h6s8th46a.248886.com
yeskybbs 2007-08-17
  • 打赏
  • 举报
回复
VB6调用返回实体类的WebService接口
http://blog.nnsky.com/blog_view_168055.html

hgs5945 2007-08-14
  • 打赏
  • 举报
回复
还没有高手帮忙解决下,郁闷。。。
gameboy766 2007-08-09
  • 打赏
  • 举报
回复
不懂,帮顶
godgreat 2007-08-08
  • 打赏
  • 举报
回复
沙发,帮忙顶
hgs5945 2007-08-08
  • 打赏
  • 举报
回复
大虾快来帮帮忙呀!!急

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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