asp.net web services
.net平台给我们提供了一种运行环境,即公用语言运行环境(CLR,Common Language Runtime)。对 CLR来说,它提供了一种内置机制来创建一个可编程的站点,、对于Web 程序开发者和VB 程序员来说,这将是一致、熟悉的。这种模型是可以重复使用,也可以再扩展。 它包含了开放的Internet标准(HTTP, XML, SOAP, SDL)。以便它能被网页浏览者访问。
ASP.NET 使用.asmx 文件来对Web Services的支持。.asmx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。
下面我们将举一个简单的例子来介绍.asmx文件,我们还是从"Hello,World"这个经典的例子说起,代码如下:
<!-- 文件名:webservice\sisam.asmx -->
web教程网
|
说明:
1.编码最开始必须进行WebService声明,从而定义这个文件为一个Web Service。而且,在同一行中设置好编程语言的类型。
2.然后,引入名字空间System.Web.Services。注意,这个名字空间属于最基本的元素,必须要包含它。
3.接着,声明service中的功能模块,也就是类模块,这里的类名叫HelloWorld。这个类来源于基类WebService,而且应该是public类型。
4.最后,定义service的可访问方法。在表示方法的符号前面,要设置好自定义属性。对应于C#语言,属性值就是[WebMethod];对应于VB,就是。如果没有设置这个属性,那么这个方法就不能从service中访问。一个局部应用可以使用任何的public类型的类,但是只有具备[WebMethod]的类才可以通过SOAP被远程地访问。
当对service的请求发生时,.asmx文件将自动地被ASP.NET运行环境所编译。随后的请求就可以由缓冲的预编译类型对象执行。
web教程网
为了测试编写好的代码,我们需用一个支持ASP.NET的Web服务器。假设这个Web服务器的名称叫做server1,其上有一个虚拟目录test。请跟随下面步骤开始测试:
1.将代码保存为HelloWorld.asmx
2.放到Web服务器Foo的虚拟目录Bar下
3.打开Internet Explorer5,在地址栏输入http://server1/test/HelloWorld.asmx
这时,我们将看到关于这个Web Service的公用方法-也就是那些标记为WebMethod属性的字符,并得知调用这些方法可以使用的协议,比如SOAP或者HTTP GET。
在Internet Explorer的地址栏中输入http://Foo/Bar/HelloWorld.asmx?SDL后,将产生基于服务描述语言(Service Description Language :SDL)语法的具备相同信息的XML文件。这个SDL文件非常重要,客户端就是使用它来访问service。
从客户端进行访问:
除了允许开发者使用的创建Web Services的技术以外,Microsoft的.NET框架给客户端提供了一套访问并使用Web Services的精致且高深的工具和代码。由于Web Services是基于如简单对象访问协议SOAP(Simple Object Access Protocol)和HTTP这样的开放协议标准的,从而,我们就可以使用这种客户端技术使用非ASP.NET的Web Services。当然,这也需用高水平地合成ASP.NET Web Services和这种客户端技术。
网络应用
SDK中有一个工具叫做WebServiceUtil.exe,我们可以使用它来下载一个Web Services的SDL描述语言,并创建表达这个Service的代理类。比如,当我们输入以下命令,就可以创建一个叫做HelloWorld.cs的代理类:
WebServiceUtil /c:proxy /pa:http://someDomain.com/someFolder/HelloWorld.asmx?SDL
这个类看起来与前面创建的类非常相似。它包含一个方法SayHelloWorld,该方法返回一个字符串。将这个代理类编译到一个应用程序中,然后调用这个代理类的方法,结果就是:通过HTTP,这个代理类包装SOAP请求,然后接收SOAP编码响应,最后汇集成为一个字符串。
请看关于Web Service的一个客户端例程:
客户端访问的文件:clint.aspx,内容如下:
<%@ Import Namespace="DataTypesService" %> <html> </style> <script language="VB" runat="server"> Public Sub Page_Load(Sender As Object, E As EventArgs) Dim D As DataTypes = New DataTypes() Dim MyIntArray As Integer() = D.GetIntArray() For I = 0 To MyIntArray.Length - 1 Message2.InnerHtml = Message2.InnerHtml & MyString Dim MyOrder As Order = D.GetOrder() Dim MyOrders As Order() = D.GetOrders() End Sub </script> <body style="font: 10pt verdana"> <h5>Methods that return a Primitive (String): </h5> <h5>Methods that return an Array of Primitives (Integers): </h5> <h5>Method that returns an Enum: </h5> <h5>Method that returns a Class/Struct: </h5> <h5>Method that returns an array of Classes/Structs: </h5> </body> |
在客户端程序中,我们使用<%@ Import Namespace="DataTypesService" %>来引入DataTypesService这个我们自定义的名字空间。然后在程序中只是调用了DataTypesService中的方法。
转载于:https://www.cnblogs.com/hliq/archive/2007/04/24/2087291.html
asp.net web services相关推荐
- ASP调用web services
代码 1 Function CallWebServices(sUrl, sMethodName, soapMessage, XmlString) 2 CallWebServ ...
- ASP.NET Web Services Tutorial
http://progtutorials.tripod.com/WebServices.htm#_Toc85101518
- JavaScript调用Web Services实现无刷新三联动
http://singlepine.cnblogs.com/articles/301009.html 使用微软提供的webservice.htc实现通过JavaScript调用WebService. ...
- (转)Web Services使用多态(XmlInclude) ,支持自定义类型
Web Services使用多态(XmlInclude) 在Web Services方法中,往往使用的都是一个具体类型的参数,这个参数一般就是一个数据对象.ASP.NET Web Services通过 ...
- 应用WSDK-实现和使用DIME的Web Services(下)
应用WSDK-实现和使用DIME的Web Services 小气的神 2002-10-20 Article Type: In-Depth 难度等级:7/9 版本:1.26 二.产生Client 消费W ...
- [转]Web API Introduction to OData Services using ASP.NET Web API
本文转自:http://mahedee.net/tag/web-api/ What is OData? OData Stands for Open Data Protocol. It is a dat ...
- 基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究
本文的目的在于提供一种可行的解决方案通过Web Service技术来整合和管理现有的Asp程序到Asp.Net. 此应用解决方案尽可能从实际出发以迭代更新方式的策略把Asp Web服务器内存中的当前S ...
- 把一个 ASP.NET 程序转换为了 Web Services
什么是Web Services? Web Services 是应用程序组件 Web Services 使用开放协议进行通信 Web Services 是独立的(self-contained)并可自我描 ...
- php asp.net html,Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?...
慕标0481585 HTML.HTML5.XHTML:这是标记语言,也就是网页中呈现的内容,如文字图片.CSS:网页样式表,做页面排版,和样式用SQL:数据库语言,顾名思义存储数据的.比如账号密码什么 ...
最新文章
- 几种软负载均衡策略分析
- oclick vue 传参 函数_详解Vue计算属性和侦听属性
- python idle使用anaconda中库怎么用_如何使用Anaconda学习Python
- 前端学习(1395):多人管理项目15建立请求
- 学信网:研究生云复试平台快速搭建上线
- Web端H.265播放器研发解密
- oracle扩容bigfile,Oracle10g BIGFILE表空间带来的好处
- 雷观(二):当今时代最须要6项能力
- pojo类中list存储其他字段_如何从其他包含pojo类对象的数组列表中删除数组列表记录...
- 赤兔oracle恢复软件 收费,赤兔Oracle数据库恢复软件 v11.6
- SpreadJS 15.0.5 SpreadJS Excel在线设计
- jquery中的ajax写法
- Android APP自动升级安装失败
- 2022年全球程序员薪资排行出炉:中国倒数第九,GO最赚钱
- 目标检测:损失函数之SmoothL1Loss
- 河北安新复合型水稻 国稻种芯·中国水稻节:雄安生态示范区
- 电子邮箱格式什么样的好?什么邮箱好用?
- aardio - MsSql数据库+虚表示例
- 放弃蚂蚁offer,选择农行软开!
- FlexRay™ 协议控制器 (E-Ray)-03
热门文章
- 一个法国摄影师在中国
- 炫技式的精彩对辩撑起《哗变》
- 如何以学习单片机为契机,逐步成为优秀的工程师
- 64位Ubuntu kylin 16.04使用fastboot下载内核到tiny4412开发板
- java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘
- 最小错误率贝叶斯决策的基本思想_太赞了!机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)...
- redminote8自动关机怎么回事_红米Note8Pro手机值得入手吗 红米Note8Pro手机全面评测...
- c# mongodb or查询_C# MongoDB 查询方法
- sql 没有调试 菜单_MySQL递归查询上下级菜单
- 蓝字冲销是什么意思_梦见上学 做梦梦到上学是什么意思 梦到上学有哪些预兆...