- 热门文章:
- · ASP+ 学习笔记 2
- · 今日读 asp.net 心得 ---- 比较意识流,神经衰弱勿进
- · 用ASP.NET动态生成图像(转1)
- · Uploading Images to a Database - Part I (转)
- · 在ASP.NET中操作文件的例子(VB)
- · 在ASP.NET中处理 datetime 的一些通用函数(vb)
- · 用ASP.NET动态生成图像(转2)
- · 在 ASP.NET 中使用多个 runat=server form
- · ASP.NET实现HTTP方式获取功能
- · ASP.NET中的XML表单控件
- · Assembly和Import区别
- · 两个获取http页面的c#函数
上一篇:asp+中文教程(三)-- 服务器端控制(一) >>
ASP+ 学习笔记 4
1).介绍
当今的web已经不再是提供访问了。
NGWS对ASP+提供了创建WEB服务的内在支持。
WEB服务文件以.asmx结尾,也是在一个web应用中,也用URI寻址,一个简单例子:
<%@ WebService Language="c#"%>
using System.Web.Services;
public class HelloWorld:WebService{
[WebMethod]
public String SayHelloWorld(){
return "HelloWorld";
}
}
用WebService指令标记,引入名称空间System.Web.Services,类从WebService派生,
[WebMethod]签署后面的方法保护给外部(如果用VB,则为<WebMethod>)。
访问:http://localhost/HelloWorld.asmx,可以使用多种协议,包括SOAP,HTTP GET等。
如果带参数?SDL,如helloWorld.asmx?SDL,则返回XML格式,基于SDL文件格式的一个描述信息。
SDL(Service Description Language).
NGWS带有工具创建WEB服务应用。客户访问WEB服务需要一个能懂得SDL文件格式的代理类,
NGWS提供工具WebServiceUtil.exe以创建这个代理类。
例: WebServiceUtil /c:proxy /pa:http://localhost/HelloWorld.asmx?SDL
创建了一个 HelloWorld.cs文件。这个文件跟先前的类很相似,也有相同的方法([WebMethod]
签署的方法),编译它,然后调用其中的方法,它将通过SOAP协议访问服务器上的类,然后返回
结果(呵呵,很像JAVA中的RMI,或者原来的DCOM)。
2).编写简单的WEB服务
<%WebService Language="c#" %>
using System;
using System.Web.Services;
public class MathService{
[WebMethod]
public int Add(int a,int b){
return a+b;
}
[WebMethod]
public int Subtract(int a,int b){
return a-b;
}
}
直接在浏览器里调用MathService.asmx,将显示一个介绍页面,介绍了WEB服务能提供的服务
以及参数。如果带上参数?SDL访问,则返回一个SDL内容。
如果想把一个事先写好的类改成一个WEB服务,只需要另建一个asmx文件,且只有一行:
<%@ WebService class="MyWebApplication.MyWebService"%>
注意,因为服务也支持HTTP GET方式访问,所以我们可以直接在浏览器里测试我们的服务,
比如:
<form action="http://localhost/MathService.asmx/Add">
<input type="text" name="a">
<input type="text" name="b">
<input type=submit value="加">
</form>
3).WEB服务的类型
SOAP支持的可作为参数或返回值的类型有:
简单类型,如String,int32,Boolean,single等
列举类型,比如public enum color{red=1,blue=2}
简单类型或列举类型的数组
类和结构体,其属性或字段将被序列化以传输。
类数组
DataSet(ADO+中的DataSet),如果子类化DataSet,则不保险
Dataset数组
XmlNode及其数组
参数即可传值,也可传引用(这一点比RMI强)。
如果用HTTP协议,仅支持:
简单类型中的一部分
列举
简单类型或列举的数组
其实,HTTP协议传递时都是传的串么,这一点我们大家都很清楚。
如果在同一个asmx文件中定义了多个类,则需要在WebService中指定将哪一个作为WEB服务,
如:<%@ WebService Language="c#" Class="DataTypes"%>
4).在WEB服务中访问数据
然后用XML格式返回给客户,客户再重造表结构,如:
[WebMethod]
public DataSet GetTitleAuthors(){
.....
DataSet ds = new DataSet();
......
return ds;
}
客户:
DataService d = new DataServeice();
DataSet myData = d.GetTitleAuthors();
5).使用对象和属性
略
[WebMethod(EnableSession=False)]可以关闭SESSION,以提高性能。
下一篇:ASP+ 学习笔记 2 >>
相关文章:
- · asp.net实现pop功能
- · 深入讲解 ASP+ 验证 (转自ms 一)
- · 深入讲解 ASP+ 验证 (转自ms 二)
- · 使用 ASP+ 列表绑定控件 (转自ms 一)
- · 使用 ASP+ 列表绑定控件 (转自ms 二)
- · 查看服务器磁盘、文件的aspx
- · ASP+全新接触(1) {转}
- · 就是那个上传的。按实际上传时的文件名称保存(不在是test.jpg了)图片可以改大小,图上写字(可选字体...
- · ASP+全新接触(2) {转}
- · 用asp.net写的论坛程序
- · forum.aspx 论坛主页
- · reply.aspx 浏览贴子内容及回复
- · postmessage.aspx 上贴保存
- · .net的几个重要问题
- · 解决问题的方法:(JspFuns与开心的对话录)
- · 控件发布:带日期标注的日历控件。
- · 续上文:由于16K的限制,只能再接一节了。
- · 为什么我在中文win2000+sp1上装的vs.net不能创建各种web application,而英...
- · ASP.NET中密码保护,MD5和SHA1算法的使用
- · ASP。NET连SQL7接口源代码?
- · 我对.Net技术中asp.net应用的一点看法
- · 从一个舆论调查的制作谈面向对象的编程思路(一)
- · 从一个舆论调查的制作谈面向对象的编程思路(二)
- · 从一个舆论调查的制作谈面向对象的编程思路(三)
- · 从一个舆论调查的制作谈面向对象的编程思路(五)
- · 在asp.net中使用组件,也包括import和asemble的区别
- · 从一个舆论调查的制作谈面向对象的编程思路(四)
- · 分别用DataGrid、Repeater、DataList绑定XML数据的例子
- · 用DataList 控制元件开发的一个简单的留言本程序:
- · .Net边学边讲(二)
- · .Net边学边讲(一)
- · 里面是对一个body的属性进行server的一些设定,不过可以衍生到其他的一些htmlcontrol新手看看,或者有点...
- · 一个实现自定义event的文章。。。我还没有完全摸透。。不知道有没人有兴趣。。新手就不用看了,先学会走...
- · Server.Transfer,Response.Redirect 和 Page.Navigate 的区别
- · ASP.NET发送ICQ消息DIY
- · web页面用水晶报表的例子
- · Creating Custom Portal Modules
- · 几个.net的重要问题
