首页 > 开发 > Xml > 正文

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

2020-02-03 15:11:53
字体:
来源:转载
供稿:网友
现在,应用程序已发布为 xml web services,并且可以使用 soap 激活。使用 internet explorer 浏览到 http://localhost/vb6soap/default.aspx,您会在该 aspx 页上发现一个超链接,通过它可以链接到您的组件所生成的 wsdl。以下 vbscript 将激活您的组件:

set c = getobject
   ("soap:wsdl=http://localhost/vb6soap/vb6soap.calc.soap?wsdl")
for i = 1 to 10
wscript.echo i & " " & c.add(i,i) & " " & time
next

如果用您的服务器名称替换上面脚本中的 localhost,它也可以在远程客户端计算机上正常工作。引用的页面(在此示例中为 vb6soap.calc.soap)是以 .soap 后缀结尾的组件 progid。

要通过 soap toolkit(与 windows xp professional 一起提供,并且不使用 .net remoting)访问同一端点,请运行以下 vbscript:

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) & " " & time
next

要简化在服务器上发布 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) & " " & time
next

作为 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) & " " & time
next

最大的网站源码资源下载站,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表