COM+ Web 服务:通过复选框路由到 XML Web Services (转)2

表 1:WKO 模型支持的方案

WKO 客户端 WKO 服务器
VB 6.0 或非托管 C++ VB 6.0 或非托管 C++
VB 6.0 或非托管 C++ VB .NET 或 C#
VB 6.0 或非托管 C++ SOAP V1.1(在 WSDL 中描述)
VB 6.0 或非托管 C++ Microsoft SOAP(ATL Server,SOAP TK)
C# 或 VB .NET SOAP V1.1(在 WSDL 中描述)
C# 或 VB .NET VB 6.0 或非托管 C++
C# 或 VB .NET VB .NET 或 C#
C# 或 VB .NET Microsoft SOAP(ATL Server,SOAP TK)
Microsoft SOAP Toolkit V2.0 VB 6.0 或非托管 C++
Microsoft SOAP Toolkit V2.0 C# 或 VB .NET
SOAP v1.1 VB 6.0 或非托管 C++
SOAP v1.1 C# 或 VB .NET

表 2:CAO 模型支持的方案

CAO 客户端 CAO 服务器
C# 或 VB .NET(早期绑定) VB 6.0 或非托管 C++
VB 6.0 或非托管 C++ VB 6.0 或非托管 C++
VB 6.0 或非托管 C++ C# 或 VB .NET
C# 或 VB .NET C# 或 VB .NET

这种新的 COM+ Web 服务适用于以下用户:

当前安装有 Microsoft® Visual Basic® 6.0 或者非托管 Microsoft Visual C++® COM+ 应用程序(需要通过防火墙才能进行某些激活操作)的 COM+ 用户。(使用 SOAP 并不排斥通过 DCOM 访问服务器上的相同组件,客户端计算机可以选择协议。)对于这些客户来说,如果要使用 SOAP 而不是 DCOM,则使用客户端代理导出和 CAO 模型都不需要更改客户端和服务器应用程序。只需要在服务器应用程序上启用 SOAP,将其作为客户端代理导出,然后将代理安装在要用作 SOAP 客户端的 Windows XP 计算机上。
完全迁移到 Windows XP 和 Windows .NET Server 上的托管代码的公司。COM+ Web 服务有助于在连接的两端设置远程端点。
需要在上述两种方案中组合和匹配各种服务的开发人员,以及编写托管服务器组件、或带有非托管服务器组件的托管客户端应用程序的开发人员。在第二种情况中,开发人员可以利用 COM+ Web 服务,在用托管代码替换之前充分利用早期的非托管组件。
简单的已知对象 (WKO) 示例
除了对 Linux 和 ApacheIn 提供 SOAP 支持外,将 COM+ Web 服务应用于其他 Microsoft 产品(例如 ATL Server Web 服务)也非常简单。只需使用 Microsoft Visual Studio® .NET 在服务器上生成、编译和部署默认的 ATL Web 服务即可。对它进行访问的客户端代码如下(请用驻留 ATL Server 应用程序的 Web 服务器名称替换 MyServer,用您的 ATL Server DLL 的名称替换 JALTServer):

mon="soap:wsdl=http://MyServer/JALTServer/JALTServer.dll?
   Handler=GenJALTServerWSDL"
set c = GetObject(mon)
WScript.Echo c.HelloWorld("COM+ Web 服务")

上述示例简单说明了 Microsoft Windows XP 和 Microsoft Windows .NET 服务器所包含的一个新的 SOAP 名字对象。

数据发布
如果您只想提供数据而不是使用数据,那么只需选择一个复选框,然后输入 IIS 虚拟根名称的值。要创建完整的 COM+ Web 服务,请执行以下步骤:

使用 Visual Basic 6.0 创建简单的 Microsoft ActiveX® DLL,并输入以下代码:

Function Add(ByVal Value1 As Double, ByVal Value2 As Double) As Double
Add = Value1 + Value2
End Function

在 Visual Basic 项目属性页上的 General选项卡中,设置 Unattended Execution 和 Retained in Memory,并在 Component 选项卡中选择 Remote Server Files。使用 Visual Basic 开发环境生成此 DLL。

在创建 Visual Basic 应用程序之后,需要将其注册为 COM+ 应用程序。启动组件服务管理工具,在 Windows XP 上创建 COM+ 应用程序。(在此示例中,应用程序被命名为 VB6Soap。)将所创建的 DLL 作为组件导入,然后浏览到 COM+ 应用程序属性页的 Activation 选项卡,选择 Uses SOAP,输入一个 SOAP Vroot(例如,VB6Soap),然后单击 OK(如图 1 所示)。





图 1:VB6Soap COM+ 应用程序属性页