求解:delphi调用webservices出错,C#却没有任何问题 本帖最后由 lonelyboySVC 于 2011-07-28 11:47:50 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把stdcall改成cdecl试试,stdcall是Pascal默认的压栈方式 个人觉得这个webservice的login函数内部实现可能有点问题,调用getDeviceLst这个函数是没问题的,能正常返回结果。这个webservice是你自己写的吗? 你好,感谢你的回复。正如你所说,调用getDeviceLst这个函数是没问题的,能正常返回结果。需要参数的login方法就调用失败了。这个webservice不是我写的,所以不能贴上代码供大家查看。那导致这个异常的原因一般是什么问题呢? 调用方式我试了一下,也是不行,不管是pascal,还是cdecl都报同样的异常。 我帮你看了下wsdl文件,里面写着调用方式是document,而不是rpcstyle="document" - <wsdl:binding name="DataAccessWSImplServiceSoapBinding" type="tns:DataAccessWS"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />那么应该加入下面这句的。InvRegistry.RegisterInvokeOptions(TypeInfo(DataAccessWS), ioDocument);现在情况恰好相反,注释掉这句就没问题了,你可以试试,至于具体原因不是很清楚,你可以上网查查资料。 估计你用的Delphi是6或7,这个时候的delphi有好些功能都支持的不好。因为那九年是webservice兴起的时候,各家的标准都都有些区别。弄得互相支持的很差劲。这几年支持的比较好了。 請處理過大型數據庫的高手回答報表速度問題!!! 我有个关于fastreport报表的问题向大家请教!!! dbgrid中的时间显示(疑问) 帮帮我啊~~~ 为什么我的delphi看不到oracle中定义的存储过程的参数? 怎样调用CHM格式的帮助文件? 安装后找不到数据库(数据库为paradox) 如何得到openPictureDialog打开文件的名称? 关与dll的释放的问题大讨论 哪里有在Delphi5上可以安装的Hcn6组件(她的升级版或者替代品也可以) delphi2010 shellComboBox shellListView 拖动窗体大小时,控件怎么自适应?
调用getDeviceLst这个函数是没问题的,能正常返回结果。
这个webservice是你自己写的吗?
style="document" - <wsdl:binding name="DataAccessWSImplServiceSoapBinding" type="tns:DataAccessWS">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />那么应该加入下面这句的。InvRegistry.RegisterInvokeOptions(TypeInfo(DataAccessWS), ioDocument);现在情况恰好相反,注释掉这句就没问题了,你可以试试,至于具体原因不是很清楚,你可以上网查查资料。
因为那九年是webservice兴起的时候,各家的标准都都有些区别。
弄得互相支持的很差劲。
这几年支持的比较好了。