您现在的位置是: 软件 > 开发者网络 > 技术跟踪 > XML与.NET专栏 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

SOAP+Flash 更友好的Web应用程序
2001-10-31· ·霍炬编译··yesky

上一页  1 2 3 4  下一页


  第二步:建立服务器端计算器组件

  下一步,建立服务器端的用来完成计算操作的组件。打开Visual Basic 6,建立一个新的ActiveX DLL工程。

  这个组件和SOAP Toolkit中的“Using a Low Level API for SOAP Messages”这个例子程序是相同的,但是我们把工程的名字改成了SOAPCalc。如果你没有安装Visual Basic,也可以直接下载编译过的CalcServ安装程序(见参考)。安装程序将复制并注册所有需要的文件。本文后面的zip包中有这个例子的VB代码,以及编译好的DLL文件。

  这个演示程序通过SOAP reader对象读取进入的请求。然后,它将检查请求中的SOAP封装是否包含叫做<Add><Subtract>, <Multiply> 或 <Divide>的节点,以及两个子节点<A>和<B>。如果找到了,它将处理请求,并且通过serializer返回SOAP消息和ASP的Response对象。

  因为Flash的XML解析器不能处理XML标记的名称空间,所以,需要使用单一的结构。

  一般的SOAP主体是这样的:

<SOAPSDK1:AddResponse xmlns:SOAPSDK1="uri:Calc">
 <SOAPSDK1:Answer>12</SOAPSDK1:Answer>
</SOAPSDK1:Response>

  但是,由于前述的理由,我们不能直接使用这样的结构。而应该用下面这样Flash支持的语法形式。这种形式包容了同样的数据,只是没有SOAPSDK的名字空间和标记前缀而已。

<AddResponse>
 <Answer>12</Answer>
</AddResponse>

  做这些改变,首先应该从这个模块的代码前端的声明部分去掉下面这行:

Const CALC_NS = "uri:Calc"

  然后,要告诉SOAP Serializer不使用特定的名字空间。把这段代码:

...
Serializer.startBody
Serializer.startElement MethodName & "Response", CALC_NS
Serializer.startElement "Answer", CALC_NS
...

  修改成这样:

...
Serializer.startBody
Serializer.startElement MethodName & "Response"
Serializer.startElement "Answer"
...

  好了,现在可以编译DLL了。然后IIS服务器上注册它。(在控制台或是run对话框中使用regsvr32.exe命令,形式是:regsvr32 DLL所在路径\DLL文件名)

上一页  1 2 3 4  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 Microsoft .NET框架和Visual Studio.NET中的SOAP
 使用UDDI的Web服务描述和发现之二
 使samba 2.0 加入NT域
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!