zoukankan      html  css  js  c++  java
  • WebService 学习总结

    一.概念

    Web

    Web应用程序

    Web服务( Web Serivce), SOAP, WSDL, UDDI

    .Net 框架

    ASP.net

    IIS

    C#, 代理(委托)

    二.实践

    1.创建WebSerivice

    VS2010与VS2005

    2.IIS配置WebSerivce

    3.调用WebService接口

    C#中使用Web Serivice代理访问Web Service接口

    http://www.alixixi.com/Dev/Web/ASPNET/aspnet5/2007/200702068207.html

    动态访问

    http://www.cnblogs.com/VisualStudio/archive/2008/10/29/1322228.html

     
    4.发布C#应用程序
    使用ILMerge将dll打包到exe中:
     
     

     三.代理访问/调用WebService接口详细过程:

    如何创建和使用Web Service代理类

    Web服务代理是支持.net的编程语言文件,由.net框架提供的WSDL工具自动生成。代理类不包含任何应用程序逻辑。相反,他包含关于如何传递参数和检索结果的传输逻辑,还包含Web服务中的方法及原型列表。代理类可以从任何WSDL文件创建。

    可以像访问com对象一样访问Web服务。要访问Web服务,需要从本地计算机上的Web服务的WSDL文档创建代理类。.net提供了名为WSDL.exe的工具以自动生成代理类文件。下面详细说明其创建和使用过程:

    1、 新建一个asp应用程序(#C)工程,工程名为TeachShow,在TeachShow工程中创建一个文件夹Charpter8,在该文件夹下创建一个新的Web服务,取名为:Computer.asmx

    2、 切换到代码视图,编写下面的代码:
    [WebMethod(Description="用于相加运算", EnableSession=false)]
    public int Add(int a,int b)
    {return a+b;}

    [WebMethod(Description="用于相减运算", EnableSession=false)]
    public int Sub(int a,int b)
    {return a+b;}

    [WebMethod(Description="用于相乘运算", EnableSession=false)]
    public int Multi(int a,int b)
    {return a*b;}

    [WebMethod(Description="用于相除运算", EnableSession=false)]
    public double Devide(int a,int b)
    {return Convert.ToDouble(a)/Convert.ToDouble(b);}


    3、按F5编译整个工程(这一步一定要做,如果不做第4步无法实现)
    4、打开MS.net 2003的命令提示工具,输入:

    C:>wsdl http://localhost/TeachShow/Charpter8/FirstAndUse/Computer.asmx /n:ComputerNameSpace,

    我这边是从服务器上保存了WSDL到本地,然后调用这个命令,类似于下面这个样子:

    D:2013Test>wsdl  oilservice.wsdl /n:ComputerNameSpace
    Microsoft(R) Web Services 描述语言实用工具
    [Microsoft (R) .NET Framework, Version 4.0.30319.1]
    Copyright (C) Microsoft Corporation. All rights reserved.
    正在写入文件“D:2013TestOilService.cs”。

    其中,ComputerNameSpace是自定义的命名空间。提示如下:
    Microsoft (R) Web 服务描述语言实用工具
    [Microsoft (R) .NET Framework,版本 1.1.4322.573]
    Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
    正在写入文件“C:Computer.cs”。

    5、注意,此时在C:盘(其实就是命令提示符的当前目录)下生成一个和Computer.asmx相同文件名的C#源文件Computer.cs。
    6、编译Computer.cs文件,在命令提示符下输入如下命令:C:>csc /out:ComputerDll.dll /t:library /r:System.Web.Services.dll c:Computer.cs。其中,/out:ComputerDll.dll是要输出的dll文件,/t:library是输出文件类型,/r:System.Web.Services.dll是要引用的组件,c:Computer.cs是第4步生成的C#文件。

    7、此时,将会在C:盘下生成一个叫ComputerDll.dll的文件,要使用这个文件,必须复制到TeachShow文件夹下的bin目录下。默认情况下为:C:InetpubwwwrootTeachShowin。
    8、新建一个名为TestWSDL.aspx的WEB窗体文件,并添加一个引用,将刚才生成的ComputerDll.dll文件作为引用添加到工程中。
    9、在TestWSDL.aspx窗体的Load事件中编写代码:

    ComputerNameSpace.Computer com=new ComputerNameSpace.Computer();
    this.Response.Write("和:"+com.Add(45,65).ToString()+"");
    this.Response.Write("减:"+com.Sub(78,900).ToString()+"");
    this.Response.Write("乘:"+com.Multi(43,55).ToString()+"");
    this.Response.Write("除:"+com.Devide(1000,33).ToString());

    显示结果:
    和:110
    减:978
    乘:2365
    除:30.3030303030303

    10、至此,程序完成。

  • 相关阅读:
    IDEA中Git的更新、提交、还原方法
    Java链接Redis时出现 “ERR Client sent AUTH, but no password is set” 异常的原因及解决办法
    Vim常用匹配、查找、替换命令总结
    eclipse设置jvm
    Cash Loan----:利用脚本自动化部署系统,解放我们的双手
    阿里云OSS工具类
    GET请求中URL的最大长度限制总结
    SpringMvc中两个Controller类之间传递参数的方法
    7个小技巧,解决eclipse卡顿问题
    eclipse启动优化,终于不那么卡了!
  • 原文地址:https://www.cnblogs.com/jiqiubo/p/3262365.html
Copyright © 2011-2022 走看看