PB9,在编译时提示:
Power Builder Application Execution Error(R0000)
Application terminated
Error:error calling method of a PBNI object
这是在create SoapConnetion时,提示的PBNI错误。
解析:
1、如果你的开发环境下,已经存在pbsoapclient90.dll,注意和PB的安装环境下的同名文件对比一下,是否大小不一致,正常大小为620K。
解决:就是把PB的安装环境下的pbsoapclient90.dll考到开发环境,或者干脆把开发环境的pbsoapclient90.dll直接删除,而让其走环境变量对应的路径下的pbsoapclient90.dll
2、如果对应的WebService的地址不正确,在生产环境也会出现这个错误提示!也是醉了啊!!
我是在某次编译时,把pbsoapclient90.pbd也勾上了,即把这个PBD也编译也DLL了,结果编译出来的pbsoapclient90.dll为40K左右。这会导致2下结果 :
1、再次编译时,出现PBNI错误
2、发布到生产环境时,也会出增PBNI错误
带带拉拉查了好几天,又是查环境变量,又是开台新机器重装反复试验,哎,血淋淋的教训啊!!!
延伸:PB9调用WebService时,需要将pbsoapclient90.pbd放到你的工程里,但是编译时,不能将其编译为DLL,因为人家PowerBuiler已经自带这个DLL文件了。你只需要在发布到生产环境时,带上这个DLL即可(还有EasySoap.Dll)