第六章 .NET中的Webservice开发(C#)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通用语言运行时 系统服务
三.WEB服务的示例
♦ 1.创建WEB服务 ♦ (1)WEB服务说明:温度转换WEB服务是把指定的温度从华氏单位
♦ ♦ ♦ ♦ ♦ ♦
或摄氏单位转换成华氏,摄氏,开尔芬等单位。每一种单位转换 都采用一种现成的算法公式。为简单起见,本转换只支持从摄氏, 华氏转换成其他单位。 WEB方法说明:使用一种名为Ctemp的方法 算法公式: 参数说明: Temperature Decimal 待转换的温度 FromUnit String 转换前的温度单位 ToUnit String 转换后的温度单位
(2)程序部分:
♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
//(ctemp.asmx) <%@ WebService Language="C#" Class="TempConverter"%> using System; using System.Web.Services; //[WebService(Namespace="http://localhost/ctemp/")] public class TempConverter:WebService { [WebMethod] public Decimal Ctemp(Decimal Temperature,String FromUnits,String ToUnits)
创建WEB应用程序和WEB服务提供高级服 务,ASP.NET提供了一种新的编程模型和 底层结构,从而以前所未有的速度,灵活 性和简易性创建功能强大的WEB应用程序.
Microsoft Web Service 平台 ASP.NET
WEB FORM WEB 服 务
WIN FORM
.NET 框架
库 数据 开发工具 。。。。
♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
<title>CTem Web Service Consumer Application </title> </HEAD> <%--下面创建了转换前后的温度大小编辑框,一个转换按钮,以及转换前后的温度单位列表--%> <body> <form id="frmCtem" action="CtemClient.aspx" runat="server"> <asp:textbox id="txtInputTemp" Style="POSITION:absolute; TOP:48px; LEFT:10px;" Height="26px" Width="65px" runat="server"> </asp:textbox> <asp:radiobuttonlist id="optToUnits" style="POSITION:absolute; TOP:12px; LEFT:34px;" runat="server"> <asp:ListItem Value="F">华氏</asp:ListItem> <asp:ListItem Value="C" Slected="TRUE">摄氏</asp:ListItem> </asp:radiobuttonlist> <asp:radiobuttonlist id="optFromUnits" tyle="POSITION:absolute; TOP:36px; LEFT:76px;" runat="server"> <asp:ListItem Value="F" Slexted="TRUE">华氏</asp:ListItem> <asp:ListItem Value="C">摄氏</asp:ListItem> <asp:ListItem Value="C">开尔芬</asp:ListItem> <asp:ListItem Value="C">兰金</asp:ListItem> </asp:radiobuttonlist> <asp:button id="btnConvert" style="POSITION:absolute; TOP:49px; LEFT:174px;" Text="温度转换" OnClick="btnConvert_click" runat="server"> </asp:button> <asp:textbox id="textOutputTemp" style="POSITION:absolute; TOP:48px; LEFT:281px;" Width="66px" Height="28px" ReadOnly="True" runat="server"> </asp:textbox> </form> </body> </HTML>
4.使用WEB服务
♦ 传统的桌面应用程序,WEB应用程序都可以使用WEB ♦ ♦ ♦ ♦ ♦
服务。要使用WEB服务,要做到 : a.查找WEB服务; b,获得WEB服务的WSDL服务合同; c,生成调用WEB服务的代理类; d,创建代理类的实例; e,调用代理类的方法;
WEB服务使用过程
♦ ♦
(1)关于代理类
♦ 代理类可以经由HTTP和SOAP协议到达WEB服
务,它将方法请求序列化为SOAP,然后SOAP 消息通过网络被发送到WEB服务。当WEB服 务返回编码后结果之后,这个代理类就进入处 理过程,截获消息,将其反序列化,把结果返 回给应用程序。 ♦ 代理的重要性在于它隐藏了 代理的重要性在于它隐藏了SOAP序列化和网 序列化和网 络通信的细节,调用WEB服务方法所需的 络通信的细节,调用 服务方法所需的 HTTP和SOAP消息通道代码完全隐藏在代理 和 消息通道代码完全隐藏在代理 类中。 类中。
3.测试WEB服务
♦ 可以通过WEB浏览器和HTTP协议测试WEB服务,输入
http://localhost/ctem/ctemp.asmx,即可看到IIS生成的Web服 务页面 。 ♦ 下图的”服务说明”链接的是该服务的WSDL文件,而”ctemp”则 是测试该Web服务的页面链接
在此可以输入待转 换的温度值,原温 度值的单位,转换 后的目标单位,点 击“调用”按钮, 即可看到调用的结 果。
.NetFramwork SDK的下载页面
♦ WSDL工具生成代理类:
♦ WSDL工具用于解析WEB服务描述和生成代理类,客户使用代理类可以
在WEB服务上调用方法, ♦ 例:wsdl /l: cs /o :CtemProxy.cs /n :Ctemproxy ♦ c:\inetpub\wwwroot\ctem\ctem. Wsdl ♦ 可生成名称为CtemProxy.cs的代理类,以方便客户端使用。
3..NET类库
♦ .NET框架提供了统一的编程类库,它将
C++中的MFC,JAVA中的WFC类库, VB中的VB API等不同的库统一起来。通 过其中定义的通用API,.NET框架支持 跨语言的继承,错误处理和调试,它实 际上意味着原本不同的开发语言画上了 等号。
六:ASP.NET介绍:
♦ ASP.NET是一个统一的WEB开发平台,它为
(1)通过Visual Studio生成代理类
♦ 利用Visual Studio的引入Web服务的功能,可以
生成代理类的代码。这部分功能我们将在下一 章中进行学习。
(2)通过WSDL实用程序 生成代理类
♦ 代理类的生成也可以直接采
用.NetFramework SDK中提供的wsdl实用 程序。 ♦ 如果安装了Visual Studio 2003或2005,系 统就已经安装了上述SDK,使用wsdl可 以通过开始菜单中的” Microsoft .NET Framework SDK v2.0->SDK 命令提示 “菜单进入命令提示行,然后输入wsdl 命令已经相关参数即可。
2.通用类型系统CTS(Common Type System)
♦ 它是CLR的一个组件,它提供了一组共有的数 据类型。因此,.NET编程语言(如VB.NET) 可以使用它们原来的数据类型(如VB中的 string),编译时会自动将其转换为相应的 CTS类型,如果愿意,当然也可以在代码中直 接使用CTS。由于CTS的存在使得.NET能跨编 程语言。
Biblioteka Baidu
2.部署和发布WEB服务 ♦ 部署WEB服务: ♦ WEB服务的部署过程包括WEB服务入口点 文件(ASMX文件),WEB服务程序集和相 关的支持文件(比如WEB服务的合同文件 或Web.config文件)。将这些文件复制 到目标WEB服务器的具有相应配置的虚拟 目录。但对于简单的WEB服务来说,就只 有一个ASMX文件即可。 ♦ 本示例需要先在IIS中建立一个名为ctem 的虚拟目录,然后将ctemp.asmx拷贝到 虚拟目录所在文件夹就可以了
(3).生成WEB服务客户端
♦ <HTML> ♦ <%@ Import NameSpace="CtemProxy" %> ♦ <script language="CS" runat="server"> ♦ void btnConvert_Click(Object Src, EventArgs E) ♦ { ♦ TempConverter TC=new TempConverter(); ♦ txtOutputTemp.Text= ♦ TC.Ctemp(Convert.ToDecimal(txtInputTemp.Text), ♦ optFromUnits.SelectedItem.Value, ♦ optToUnits.SelctedItem.Value).ToString("F"); ♦ } ♦ </script> ♦ <HEAD>
♦ 使用.NET FRAMEWORK,如果使用VS.NET,则会
更方便,下面为要安装的组件,注意要严格按 照安装顺序来。
–1.FPSE 2002(Frontpage服务器扩展) –2.MDAC 2.7 ( Microsoft Data Access Compoment ) –3.IE 6.0 –4.IIS 5.0(以上几部分成为WINDOWS组件更新) –5..NET Framework SDK
♦ switch(FromUnits.ToUpper().Substring(0,1)) ♦ { ♦ case "F": ♦ switch(ToUnits.ToUpper().Substring(0,1)) ♦ { ♦ case "F": return Temperature; ♦ case "C": return ((Temperature-32)*5)/9; ♦ case "K": return (((Temperature-32)*5)/9)+(Decimal)273.15; ♦ case "R": return Temperature+(Decimal)459.67; ♦ default: throw new ArgumentException("Bad ToUnits arg."); ♦ }; ♦ case "C": ♦ switch(ToUnits.ToUpper().Substring(0,1)) ♦ { ♦ case "C": return Temperature; ♦ case "F": return ((Temperature*9)/5)+(Decimal)32; ♦ case "K": return Temperature+(Decimal)273.15; ♦ case "R": return ((Temperature*9)/5)+(Decimal)459.67; ♦ default: throw new ArgumentException("Bad ToUnits arg."); ♦ }; ♦ default: throw new ArgumentException("Bad FromUnits arg."); ♦ } } }
♦ 是位于应用程序和操作系统之间的一个层面,CLR简
化了应用程序的设计并减少了程序开发人员必须编写 的代码的数量,因为它提供了内存管理、线程管理、 组件寿命管理和默认的错误处理等多种服务。 ♦ CLR负责代码编译,但与传统的编译器不同,CLR 并 不 是 生 成 代 码 的 二 进 制 表 示 法 , 它 是 生 成 MSIL (Microsoft Intermediate Language),当代码第一 次执行时,CLR会调用一个名为JIT(Just In Time) 的特殊编译器,它会将MSIL转化为针对用户系统的处 理器的类型和模型的可执行指令。
♦ 编译代理类生成.NET程序集
♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
csc /t :library /out:c:\inetpub\wwwroot\ctem\bin\CtempProxy.dll /r:System.Web.Services.dll /r:System.XML.dll /r: System.dll c:\inetpub\wwwroot\ctem\CtempProxy.cs 注释:/t:library 制定要创建一个dll /r选项指定了.NET程序集。这些程序集对应于代理类引用的.NET 名字空间。 /out选项将程序集保存到web应用程序的\bin文件。 上述代码是将Ctem WEB服务代理类编译成.Net程序集,这样WEB FORM客 户端应用程序可以方便的引用它。
二. .Net Framework简介:
♦ 它是WINDOWS .NET平台的核心,它具
有一致的编程模型;对安全性有很好的 支持;简化了开发工作;使应用程序的 实施和维护变得简单。 ♦ NET框架的核心技术为:CLR、类库、 ASP.NET
1.CLR(Common Language Runtime)
开始菜单中的SDK命令提示
单独下载.NetFramework SDK
♦ 如果没有安装Visual Studio,.NetFramework
SDK可以从微软的站点下载。下载的网址是: http://www.microsoft.com/downloads/details.aspx ?displaylang=zh-cn&FamilyID=fe6f2099-b7b44f47-a244-c96d69c35dec ♦ 下载并安装.Net Framework SDK后,一定要将 安装目录的bin目录加入到系统的PATH环境变 量中,打开Windows的命令行窗口,输入wsdl, 就可以使用wsdl实用工具了
localhostctemctempasmx即可看到iis生成的web服务页面下图的服务说明链接的是该服务的wsdl文件而ctemp则是测试该web服务的页面链接在此可以输入待转度值的单位转换后的目标单位点击调用按钮即可看到调用的结传统的桌面应用程序web应用程序都可以使用web服务
一.WEB服务的开发环境
相关文档
最新文档