PowerBuilder 10.5示例Web服务客户端应用程序

时间:2009-09-30 13:17:21

标签: web-services powerbuilder

我正在尝试运行PowerBuilder 10.5.2示例Web服务应用程序。我可以很好地打开工作区,我可以看到对象甚至运行应用程序但是当我尝试调用服务时出现“错误的运行时函数引用”错误。

我相信我已经安装了所有必需的部分:

  • PB 10.5.2
  • .Net 2.0 SDK

网络搜索显示示例应用程序使用的某些Web服务已不存在,但我无法想象所有这些服务都是,所以错误似乎表明设置或对象存在问题,而不是第三方服务。

我可以在工作区列表和Sybase共享对象目录中看到pbwsclient105.pbd。但是,作为测试,我尝试使用替代方法列出的文档用于设置.Net Web服务对象的PB代理(通过从pbwsclient105.pbx导入PB扩展)并得到“无效的DLL错误”,所以也许我的Web服务库已损坏?

还有什么可以遗漏?路径设置? .Net 2.0 SDK安装不正确?

1 个答案:

答案 0 :(得分:2)

* * *编辑:问题已解决 - 至少在我的机器上* * *

我从我找到here的帖子中获取了一个提示,并开始检查PowerBuilder在发生这些错误时发生了什么 - 在导入PBX期间和运行时如果执行了示例应用程序。

thread中提到的一个人问题与 libeay32.dll ssleay32.dll 有关。这不是OpenSSL第一次让我适应这些组件 - 我的硬盘驱动器在各种应用程序文件夹中都充满了它们。导入PBWSCLIENT105.PBX扩展时,这些DLL由PB加载,或者在运行时使用关联的PBD由app加载。果然,通过使用ProcMon,我能够确认从 Windows \ System32 加载 libeay32.dll ssleay32.dll 与位于PB文件夹结构中的相同DLL的版本相反。显然,这是一个问题。我重命名了位于 System32 中的两个DLL来有效地删除它们,启动PB并且导入PBWSCLIENT105.PBX就像一个魅力。


我的PB 10.5安装存在类似问题。导入PBX文件会给出错误消息:

---------- Import PB Extension:
Importing C:\Program Files\Sybase\Shared\PowerBuilder\pbwsclient105.pbx - Error: The file is not a valid dll or pbx file.
---------- Finished

我最初认为问题是文件已损坏等等。但是,我在一台干净的机器(实际上是VM)上安装了PB 10.5以及.Net 2.0 SDK并且导入工作完美无缺;此外,我能够拨打网络服务。我的组中的每个开发人员在他们自己的计算机上都有相同的问题,但是如果他们使用“干净”的计算机或安装了PB的VM(可能还有一些其他应用程序),则PBX文件的导入可以正常运行。

此时我正试图确定环境中导致问题的原因,但还未能实现。正如您所指出的,有趣的是,如果您打开示例应用程序,您可以看到完全相同的导入库;但是,您在运行时收到错误。所有这一切都指向环境缺失或错误注册的东西。因此,如果您有能力使用VM,我建议您将其作为临时解决方案。

我将在此添加一件事:如果您碰巧使用Vista或Windows 7作为您的VM,则导入库工作正常,但我在使用.Net Web服务引擎生成客户端代理时遇到问题。我终于发现,在后台,SDK工具WSDL.exe正在针对服务的WSDL执行,以便生成.Net客户端代理。事实证明Vista / Win7用户访问控制阻止WSDL.EXE运行。我以管理员身份运行PowerBuilder,在生成客户端代理方面,一切都按预期工作。

如果你发现PBX导入无效的原因,我会有兴趣听到它!