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
三.代理访问/调用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:\2013Test\OilService.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:\Inetpub\wwwroot\TeachShow\bin。
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、至此,程序完成。
WebService 学习总结的更多相关文章
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- [未完成]WebService学习第一天学习笔记
[未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记
- WebService学习笔记系列(二)
soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...
- webservice学习01:wsdl文档结构
webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...
- WebService学习总结(转)
原文地址: WebService学习总结(一)——WebService的相关概念 WebService学习总结(二)——WebService相关概念介绍 WebService学习总结(三)——使用JD ...
- 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念
wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...
- WebService学习之旅(三)JAX-WS与Spring整合发布WebService
Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1.5 ...
- Java WebService学习笔记 - Axis进阶(二)
上一篇 Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...
- Java WebService学习笔记 - Axis(一)
WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...
- WebService学习总结(六)--CXF 与Spring结合+tomcat发布
该项目在上文 WebService学习总结(四)--基于CXF的服务端开发 的基础上修改为spring上发布的webservice接口 1.新建web project 工程 2.导入spring ...
随机推荐
- java_Hashtable实例
package ming; import java.util.Hashtable; class D { int count; public D(int count) { this.count = co ...
- java_实现接口的枚举类
package ming; interface GenderDoc { void info(); } enum Gender implements GenderDoc { // public stat ...
- C#_delegate - example
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Dele ...
- java validator的原理与使用
http://developer.51cto.com/art/201104/253257_1.htm ava EE 6核心特征:Bean Validation特性概述(2) 2011-04-02 14 ...
- axel源码学习(0)——程序逻辑
axel简介 axel是一个命令行下的轻量级http/ftp 下载加速工具,支持多线程下载和断点续传,支持从多个镜像下载同一文件. axel的用法如下: 图 0.1 axel usage axel 粗 ...
- Hibernate学习笔记--------3.缓存
一.一级缓存 一级缓存又称为“Session缓存”或者“会话级缓存”,通过Session从数据库查询实体时,会把实体在内存中存储起来,下一次查询同一实体时不再再次执行sql语句查询数据库,而是从内存中 ...
- 一些ecplise 快捷键
1 F5:下一步,可以进入下一个函数栈 2 F6:当前函数的下一步,不会进入其他的函数. 3 F8:下一个断点. 4 选中一个变量或者表达式,按ctrl+shift+i 来查看内容或者添加监视的方式. ...
- 用happen-before规则重新审视DCL(转载)
编写Java多线程程序一直以来都是一件十分困难的事,多线程程序的bug很难测试,DCL(Double Check Lock)就是一个典型,因此对多线程安全的理论分析就显得十分重要,当然这决不是说对多线 ...
- [记录]ns_error_unexpected firefox tinymce
参考: Form not saving, NS_ERROR_UNEXPECTED Error: NS_ERROR_UNEXPECTED #794 NS_ERROR_UNEXPECTED on Fir ...
- 【转】做产品VS做项目
相关定义 根据GB/T19000—2008<质量管理体系基础和术语>,有以下定义 过程process 一组将输入转化为输出的相互关联或相互作用的活动 注:一个过程的输入通常是其他过程的输出 ...