152

Delphi 曾经包含一个 web 服务的 demos 文件夹,但似乎不再包含这个。

我刚刚尝试了 Delphi 7 演示项目(SOAPDMServerWAD一个几乎没有 UI 的服务器,并且SOAPDMClient)并且无法让它们运行,即使在 Delphi 7 中也是如此。

如果有人曾经在 Delphi XE 或 Delphi 2010 中进行过类似的演示工作,与旧的SOAPDMServerWAD+SoapDMClient演示相同,在 Delphi XE 中工作,并且至少具有来自 Delphi SOAP Server 应用程序向导的最小 UI,那将是完美的。

更新:演示一直出现到 Delphi 2010,但使用现已过时的 WAD(web-app-debugger),我试图将它移植到新的 Indy runtime/web-app-development-harnessing-code,但我似乎无法让它工作。演示运行,但服务器没有用户界面,并且似乎没有运行任何 HTTP 服务器(使用常规 Web 浏览器通过http://localhost:port/url 进行测试。顺便说一句,尝试谷歌搜索演示,这个 url 出现了,并且不到一个小时前我问过。这太可怕了,谷歌。

Update2请参阅下面我自己的答案,很快就会有一个带有工作代码的链接。

4

1 回答 1

41

我已经在CodeCentral 上发布了 SOAP 的完整演示集作为项目 28789

这些包含文件夹中的每一个 Delphi 2007 时代 SOAP 演示WebServices,现在针对 Delphi XE 和 XE2 进行了更新,包括将旧 WAD 服务器转换为新的 INDY VCL 服务器。你会认为这令人印象深刻,但事实并非如此。这真的很容易。只需使用向导创建一个新项目,然后将 Web 服务接口和实现单元以及属于旧演示的任何其他单元添加到项目中。一旦它们被添加到项目中,它们就可以工作了。 基本演示 SOAP 服务器在 Delphi 中非常容易构建,一旦你有一个工作演示,你会发现修改和扩展它非常容易。

最能回答我上面提出的问题的演示位于SOAPDataModule子文件夹中。

2007 年演示的基本问题有两个:

  1. WAD(网络应用调试器)不见了。您必须使用 Indy 服务器创建一个新服务器,以实现最佳演示目的,使您免于使用 WAD(已消失)或在 IIS 下设置 ISAPI 环境,这对于演示目的而言并不理想。我制作的新演示项目名为SoapDMServerINDY,它由一个数据模块 (datamod_u.pas)、一个 VCL 表单用户界面单元 ( IndyServerVCLFormUnit.pas) 和一个名为IndyServerWebModule.pas.

  2. Delphi 2007 演示失败了,这要归功于演示可执行文件现在所在的 Debug/Win32 子文件夹的新做法,您需要更进一步。我修复了演示服务器,以便在无法找到数据文件时向您发出错误消息警告,从而使您免于神秘的“XML 解析错误”。我还在一些演示中添加了一些错误检查,以便它告诉您需要安装 interbase 才能使此演示正常工作,因为某些演示需要安装和运行 Interbase,并且需要存在名为 IBLOCAL 的别名,最好是一个被称为EMPLOYEE存在的表。

在此处输入图像描述

这个演示的元素是一个服务器(SoapDMServerINDY,基于来自 SOAPDMServerWAD 的代码)和客户端SOAPDMClient,它连接到演示并有两个页面,一个页面将显示通过 DBGrid + 数据集远程处理的基本数据访问,第二个页面页显示如何调用自定义 SOAP 方法。

要使用演示:您必须启动服务器,单击启动按钮,然后启动客户端并单击连接。

在此处输入图像描述

于 2012-03-26T21:02:29.493 回答