网站公告列表

  没有公告

加入收藏
设为首页
在线投稿

您现在的位置: IT知识网 >> IT知识 >> 网络编程 >> 其它 >> 文章正文

 

  [组图]透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Client)           

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Client)
作者:佚名 文章来源:不详 点击数: 更新时间:2006-12-5 16:37:35

小气的神 2001-10-13

 

 

    客户端的测试,主要是使用两个VB程序来测试一下,实际应用中可以是多种形式的VC、ASP或Script等方式的,只要和支持COM接口的都可以,但是真正发行你的客户端的时候,你需要附加MS SOAP Toolkit的分发库和CTM组件。也许正是这个原因,在做完这个测试之后,我又考虑用ASP.NET 方式的WebService实现,这样客户端才能够更加轻巧。

    如果你熟悉VB和COM,VB版的测试很简单。最麻烦的就是IIS的配置,以及WSDL和WSML的语法是否正确,往往这是最费时间的。建议你多产生几次WSDL和WSML文件,从最简单的开始,先不要调试ADODB.Recordset的,等基本和简单的调试成功,然后再调试ADODB.Recordset类型的。WebService的一个好处就是比以前更安全一些。

先是VB版本,而且在本机进行测试:

Private Sub cmdVersion_Click()

    Dim retStr As String

       

    Dim SoapClient As MSSOAPLib.SoapClient

    Set SoapClient = New MSSOAPLib.SoapClient

       

    Call SoapClient.mssoapinit(strWSDLUrl, "", "", strWSMLUrl)

    retStr = SoapClient.Version()

   

    MsgBox retStr

    Set SoapClient = Nothing

End Sub

 

Private Sub cmdSOAP_Click()

On Error GoTo ErrHandle

 

    Dim result As ADODB.Recordset

    Dim strHeaders As String

   

    Dim SoapClient As MSSOAPLib.SoapClient

    Set SoapClient = New MSSOAPLib.SoapClient

   

strHeaders = "Au_ID/姓名/Name/Phone/地址/City/State/Zip/Contract"

   

    Call SoapClient.mssoapinit(wsdlUrl, "", "", wsmlUrl)

 

    Set result = SoapClient.GetAuthors()

   

    LvwHeadName lstAuthors, strHeaders

    ADOFillLvw result, lstAuthors

   

MsgBox "共得到 " & result.RecordCount & " 条记录 "

   

ErrExit:

    Set SoapClient = Nothing

    Exit Sub

ErrHandle:

    MsgBox SoapClient.detail

    Resume ErrExit

End Sub

运行结果如下图:

 

VB Client

 

接着开始到另外一部机器Dereksvr上去生成一个dotNET的WinForm来测试一下。原理上是一致的,不同的是dotNET方式下似乎更麻烦一些(haha),不过整个dotNET的互操作性可以说是一流的,唯一让人感到担忧的是程序执行的性能问题。首先还有一些工作要做:

1.   在Dereksvr上安装 Microsoft SOAP Toolkit 2.0 SP的分发库(因为要应用MSSOAPLib库)

2.   安装和注册CTM , Regsvr32 AdoRstTypeMapper.dll

3.   检查WSDL文件的最后一句如果是localhost请把它改成你的机器名或IP。

如果原来是:

 <service name='Authors' >

    <port name='AuthorsSoapPort' binding='wsdlns:AuthorsSoapBinding' >

      <soap:address location='http://localhost/Authors/Authors.WSDL' />

    </port>

  </service>

修改成:

  <service name='Authors' >

    <port name='AuthorsSoapPort' binding='wsdlns:AuthorsSoapBinding' >

      <soap:address location='http:// henrysvr/Authors/Authors.WSDL' />

    </port>

  </service>

这主要是如果其他机器调用这个WebService,那么设置成localhost会在调用机的本地找这个Service,那么一定会出错的。

 

在VS.NET中建立一个WinForm的Project,然后选取,这样VS.NET会自动生成一个包装的代理类,Version的可以象下面这样调用:

using System.Reflection ;

        private void btnVersion_Click(object sender, System.EventArgs e)

        {

 

                //String retStr ;

       

            String strWSDLUrl ;

            String strWSMLUrl ;

               

            MSSOAPLib.SoapClient SoapClient ;

   

            SoapClient = new MSSOAPLib.SoapClient() ;

       

            strWSDLUrl = wsdlUrl;

            strWSMLUrl = wsmlUrl;

           

[1] [2] 下一页

文章录入:bolang    责任编辑:bolang 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    相 关 文 章
    监测和调试 OSPF协议
    实例讲解路由器的一般配
    透视和调整你的企业和商
    透视和调整你的企业和商
    故障快速排除 福禄克超级
    透视木马程序开发技术(
    透视木马程序开发技术(
    透视木马程序开发技术(
    透视Win95的密码档
    透视木马程序开发技术
     
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    Copyright© ITZS.NET All Rights Reserved
    QQ:272895858   ICP备案编号:吉ICP备07000044号
    IT知识网 站长:博浪