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

services|web|xml|复选框

编译并运行此 Visual Basic .NET 应用程序,将产生与前面两个 VBScript CAO 示例相同的输出内容。

因为服务器应用程序将组件发布为 CAO 和 WKO 两种形式,所以由远程客户端选择激活方法。虽然可能只对学术研究有意义,但是单一客户端计算机确实可以使用同一组件的两种远程激活方法,访问远程服务器上同一个 SOAP 发布的虚拟根。

SOAP 与 DCOM 的局限性和区别
.NET Remoting 的目的之一是提供丰富的分布式环境,使开发人员能够在此环境中对序列化协议(格式化程序)和网络协议(频道)进行组合与匹配。.NET 框架 1.0 版本中的 COM+ Web 服务仅支持一种格式化程序 (SOAP) 和一种频道 (HTTP)。这并不是说其他频道和格式化程序不能使用 ServicedComponents 或 COM+,而是说没有自动配置为这些备用频道和格式化程序提供客户端和服务器端点。

目前已经有用各种语言编写的大量 COM+ 组件。如果可以使用 COM+ Web 服务将所有这些组件启用为 Web 服务,那就太好了。但正如使用 .NET 框架 1.0 版本一样,并非所有现有的 COM 组件都可以使用 COM+ Web 服务。虽然多数具备类型库的现有组件可以正常工作,但是此版本不支持某些组件,例如 Windows 脚本组件 (WSC) 组件。某些复杂的类型库(其接口具有多重继承级别,或依赖于多个类型库)可能无法正常工作。此外,由于类型库转换的局限性,只有类型库中默认的接口才可以作为 Web 服务。

COM+ Web 服务并不是适用于所有现有非托管 COM+ 组件的完整解决方案。现有非托管 COM+ 组件中有一大部分是使用多种编程语言编写而成的,由于不可能测试所有可能的类型库(由支持 COM+ 的各种编译器生成),因此某些非托管 COM+ 组件不能使用 COM+ Web 服务正确发布。COM+ Web 服务的目的之一就是最大程度减少做出这种评估所需的时间和精力。只需将非托管 COM+ 组件发布为 COM+ Web 服务,开发人员就可以迅速判断是否可以将其用作 Web 服务。如果遇到问题,则可以通过若干替代方法来处理现有的非托管组件。这些替代方法包括编写托管或非托管的包装程序,这些包装程序提供的兼容接口可以发布为 Web 服务。多数情况下,编写这样的包装程序的工作量比重新编写整个组件要少得多。这就尽可能减少了将现有的应用程序应用为 XML Web Services 所需的开发和测试工作。

使用非托管(Visual Basic 6.0 或 Visual C++)服务器时,通常越早绑定托管客户端应用程序和 SOAP,越能更好地工作。在某些情况下,如果将生成的元数据用作后期绑定的跨计算机远程代理程序,它可能无法正常工作。

在通过 HTTP 使用 SOAP 格式化程序的情况下,仍然可以使用许多选项(取决于目标部署环境)。COM+ Web 服务为服务器和 CAO 客户端配置生成基于 XML 的远程配置文件。(WKO 激活的 URL 引用已嵌入生成的客户端代理,因此不需要配置文件。)COM+ Web 服务生成直观的功能性配置文件,可由用户自定义以满足任何通过 HTTP 的直接 SOAP 通信所不能满足的需求。可进行自定义的区域包括用户身份验证,如下例所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.runtime.remoting>
  <application>
   <service>
    <wellknown mode="SingleCall" type="SCTrans.SCTransSQL, SCTrans,
      Version=0.0.0.0, Culture=neutral,
      PublicKeyToken=9c6052078b454cee"
      objectUri="SCTrans.SCTransSQL.soap" />
    <activated type="SCTrans.SCTransSQL, SCTrans" />
   </service>
  </application>
</system.runtime.remoting>
<identity impersonate="true" />
</configuration>

上例中添加的突出显示的行可以在激活 COM+ 组件(通过 SOAP 调用)时使用用户的身份标识。(默认情况下,IIS 虚拟根使用标准的 IIS 身份验证。)这样在使用 SOAP 时可以实现 COM+ 的分区(一种 COM+ Windows .NET Server 功能),从而可根据用户的身份标识来实际调用不同的组件。

另一个可以自定义的区域包括客户端激活对象的生存期管理,如下例所示:

时间: 2024-10-22 08:06:39

COM+ Web 服务:通过复选框路由到 XML Web Services (转)9的相关文章

COM+ Web 服务:通过复选框路由到 XML Web Services(1) (微软中国)

services|web|xml|复选框|微软 COM+ Web 服务:通过复选框路由到 XML Web Services John Noss 和 Jonathan HawkinsMicrosoft Corporation 2001年11月 摘要:COM+ Web 服务新增了某些功能,可与 Microsoft .NET Remoting 集成,并通过 SOAP for COM+ 组件实现 XML Web Services 发布的复选框激活.本文通过几个示例介绍基本的互操作性.配置以及托管和非托管

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

services|web|xml|复选框 COM+ Web 服务:通过复选框路由到 XML Web Services John Noss 和 Jonathan HawkinsMicrosoft Corporation 2001年11月 摘要:COM+ Web 服务新增了某些功能,可与 Microsoft .NET Remoting 集成,并通过 SOAP for COM+ 组件实现 XML Web Services 发布的复选框激活.本文通过几个示例介绍基本的互操作性.配置以及托管和非托管 CO

COM+ Web 服务:通过复选框路由到 XML Web Services(3) (微软中国)

services|web|xml|复选框|微软 SOAP 与 DCOM 的局限性和区别 .NET Remoting 的目的之一是提供丰富的分布式环境,使开发人员能够在此环境中对序列化协议(格式化程序)和网络协议(频道)进行组合与匹配..NET 框架 1.0 版本中的 COM+ Web 服务仅支持一种格式化程序 (SOAP) 和一种频道 (HTTP).这并不是说其他频道和格式化程序不能使用 ServicedComponents 或 COM+,而是说没有自动配置为这些备用频道和格式化程序提供客户端和

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

services|web|xml|复选框 另一个可以自定义的区域包括客户端激活对象的生存期管理,如下例所示: <?xml version="1.0" encoding="utf-8"?><configuration> <system.runtime.remoting>  <application>   <service>    <wellknown mode="SingleCall"

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

services|web|xml|复选框 在图 3 所示的 COM+ 应用程序导出向导中,输入代理 .msi 文件的位置和名称. 在图 3 所示的 COM+ 应用程序导出向导中,输入代理 .msi 文件的位置和名称. 图 3:COM+ 应用程序导出向导 将代理 .msi 文件安装在单独的客户端计算机上,作为预先生成的 COM+ 应用程序. 安装时将对代理进行适当的配置,以便通过 SOAP 访问正确的服务器和虚拟根.对于客户端激活,可以不使用 WSDL 名字对象,而使用常规非托管的 COM+ 激活

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

services|web|xml|复选框 表 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

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

services|web|xml|复选框 即使在通过 SOAP 调用时,CAO 激活也会保留状态,并且允许通过 SOAP 来回传递对象引用.名称和值都保留在服务器上的类实例中,并且引用可以正确工作.这两种脚本都调用相同的编译 C# 组件,只是 .NET Remoting 激活模型不同. 除了使用 CreateObject 调用 CAO 激活外,还可以使用带有 COM+ 的名字对象,它可以提供 CAO 激活来替代 WKO(类型名称和程序集名字对象).以下脚本: '直接创建两个对象set c1=Ge

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

services|web|xml|复选框 为简单起见,上述示例全部使用 VBScript 来访问 Web 服务.其实也可以通过 SOAP WSDL 名字对象使用 Visual C+.Visual Basic 6.0.Visual Basic .NET 或 C# 进行编写.例如,Visual Basic .NET 也可以使用编译的托管代码访问同一对象,如下例所示: Imports SystemImports System.Runtime.InteropServicesModule WKOClien

COM+ Web 服务:通过复选框路由到 XML Web Services(2) (微软中国)

services|web|xml|复选框|微软 事务性组件示例简单的计算器远算不上工作量繁重的业务应用程序,因此我们现在考虑带有对象池的适于 COM+ 事务性组件的应用程序.最容易管理和配置的组件是由 ServicedComponent 导出的托管代码组件,如以下 C# 示例所示: using System;using System.Reflection;using System.Runtime.InteropServices;using System.EnterpriseServices;us