| com+ web 服务:通过复选框路由到 xml web services john noss 和 jonathan hawkins microsoft corporation 2001年11月 摘要:com+ web 服务新增了某些功能,可与 microsoft .net remoting 集成,并通过 soap for com+ 组件实现 xml web services 发布的复选框激活。本文通过几个示例介绍基本的互操作性、配置以及托管和非托管 com+ 组件(在 microsoft windows .net server 和 microsoft windows xp professional 上作为 xml web services 发布)的部署。 目录简介
com+ web 服务新增了某些功能,可与 microsoft .net remoting 集成,并通过 soap for com+ 组件实现 xml web services 发布的复选框激活。本文通过几个示例介绍基本的互操作性、配置以及托管和非托管 com+ 组件(在 microsoft windows .net server 和 microsoft® windows® xp professional 上作为 xml web services 发布)的部署。还通过示例介绍了几个新功能,使运行 windows xp 的客户端能够访问远程服务器上的 xml web services。 set soapobj = getobject ("soap:wsdl=http://www.xmethods.net/sd/temperatureservice.wsdl")wscript.echo "fairbanks 气温 = " & soapobj.gettemp("99707")
在上面的示例中,服务器是在 linux 上运行的 apache soap server,但也可以使用任何具有标准 web 服务说明语言 (wsdl) 描述功能的 soap v1.1 服务器。
使用 soap 作为计算机之间通信协议的优点之一,在于它增加了可以交互操作的计算机的种类。.net remoting 具有以下两种基本操作模型:
com+ web 服务可以使用 wko 和 cao 两种激活模型,而且所有的服务器应用程序都可以提供 wko 和 cao 端点。通过组合使用激活模型、xml web services 和 .net remoting,开发人员可以轻松地组合和匹配托管及非托管的客户端和服务器。下表所示为两种激活模型所支持方案的示例。
表 2:cao 模型支持的方案
这种新的 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 服务,请执行以下步骤: function add(byval value1 as double, byval value2 as double) as double add = value1 + value2end function
在 visual basic 项目属性页上的 general选项卡中,设置 unattended execution 和 retained in memory,并在 component 选项卡中选择 remote server files。使用 visual basic 开发环境生成此 dll。 set c = getobject ("soap:wsdl=http://localhost/vb6soap/vb6soap.calc.soap?wsdl")for i = 1 to 10 wscript.echo i & " " & c.add(i,i) & " " & timenext
如果用您的服务器名称替换上面脚本中的 localhost,它也可以在远程客户端计算机上正常工作。引用的页面(在此示例中为 vb6soap.calc.soap)是以 .soap 后缀结尾的组件 progid。 set c = createobject("mssoap.soapclient")c.mssoapinit("http://localhost/vb6soap/vb6soap.calc.soap?wsdl")for i = 1 to 10 wscript.echo i & " " & c.add(i,i) & " " & timenext
要简化在服务器上发布 soap 的过程,您可以使用 microsoft c#™ 或 visual basic .net,并从 servicedcomponent 继承。下面是简单托管组件的托管代码示例: using system;using system.reflection;using system.runtime.interopservices;using system.enterpriseservices;[assembly: applicationname("cssoap")][assembly: applicationactivation(activationoption.server, soapvroot="cssoap")][assembly: assemblykeyfile("cssoap.snk")]namespace cssoap{ public interface icalc { double add (double value1, double value2); } [classinterface(classinterfacetype.autodual)] [transactionattribute(transactionoption.none)] public class calc : servicedcomponent, icalc { public double add (double value1, double value2); { return (value1 + value2); } }}
上述示例中值得注意的是 applicationactivation 属性: [assembly: applicationactivation(activationoption.server, soapvroot="cssoap")] 建立 c# 组件,将它安装在全局程序集缓存中,然后运行 regsvcs.exe 将它注册为 com+ 应用程序。这样,该组件就被发布为 iis 虚拟根和 soap 端点。要成功地远程使用 servicedcomponent,还需要使用 gacutil.exe 或 .net 框架用户界面,将这个编译后的程序集放入全局程序集缓存 (gac) 中。要通过 wsdl 访问此 soap 端点,请使用以下 vbscript: set c = getobject ("soap:wsdl=http://localhost/cssoap/cssoap.calc.soap?wsdl")for i = 1 to 10 wscript.echo i & " " & c.add(i,i) & " " & timenext
作为 soap 交互操作性的简单示例,soap toolkit 与 windows xp professional 一起提供,并且即使运行 windows xp 的客户端计算机上没有安装 .net 框架,使用以下 vbscript 也可以访问 com+ soap 端点: set c = createobject("mssoap.soapclient")c.mssoapinit("http://localhost/cssoap/cssoap.calc.soap?wsdl?for i = 1 to 10 wscript.echo i & " " & c.add(i,i) & " " & timenext
为简单起见,上述示例全部使用 vbscript 来访问 web 服务。其实也可以通过 soap wsdl 名字对象使用 visual c+、visual basic 6.0、visual basic .net 或 c# 进行编写。例如,visual basic .net 也可以使用编译的托管代码访问同一对象,如下例所示: imports systemimports system.runtime.interopservicesmodule wkoclient sub main() dim wsdlmoniker = "soap:wsdl=http://localhost/cssoap/cssoap.calc.soap?wsdl" dim obj as object obj = marshal.bindtomoniker(wsdlmoniker) console.writeline(obj.add(1,2)) end subend module 使用 vbscript 是为了表明,托管的和非托管的客户端都可以访问发布为 com+ web 服务的 com+ 组件。在大型组织或应用程序中,很难一次转换所有部分,com+ web 服务允许将一部分应用程序转换为托管代码,而无需立即全面重新编写现有的应用程序。 简单的客户端激活对象 (cao) 示例服务器上的 com+ web 服务发布将每一组件发布为 wko 和 cao 两种形式,因此不需要额外的服务器配置。在服务器上唯一要做的操作是,在选择 uses soap 复选框(位于 com+ 应用程序属性页的 activation 选项卡上)并在 soap vroot 文本框中输入值以后,将 com+ 应用程序作为代理程序导出。下面显示了导出代理应用程序的必要步骤:
|
COM+ Web 服务:通过复选框路由到 XML Web Services(1) (微软中国)-.NET教程,Web Service开发
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » COM+ Web 服务:通过复选框路由到 XML Web Services(1) (微软中国)-.NET教程,Web Service开发
相关推荐
-      VS2010的aspx文件中的html代码的格式化方法
-      .net 反序题目的详细解答第1/2页
-      asp.net创建html文本文件实例
-      比较完整的 asp.net 学习流程
-      官网 Ext direct包中.NET版的问题
-      C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页
-      c# 连接字符串数据库服务器端口号 .net状态服务器端口号
-      asp.net教程:简单的C#图片上传代码或C#文件上传代码

