WebService特性
WebService特性(不要把它与WebMethod混淆)允许向Web Service添加额外的信息。语法:[WebService(PropertyName=value)],如果有多个属性,可以使用逗号分隔。下面是它的一些属性:
Description:描述Web Service
Name:当在浏览器中测试页面时,在Web Service帮助页面的最顶部会显示Web Service的名称,且对所有潜在的Web Service使用者可用。默认情况下,Web Service的名称是实现Web Service的类的名称。
Namespace:每个Web Service都有一个XML命名空间。XML命名空间允许你在XML文档中创建名称,这个名称是一个统一资源标识符(URI)。Web Service使用在XML中定义的WSDL文档描述。每个WebService特性必须有一个独立的XML命名空间,这样它才能够为应用程序唯一识别。vs创建的Web Service的默认URI为http://tempuri.org。通常使用唯一的名称来定义一个新的命名空间,例如公司的网站。(这个可以不是一个有效的URL)。
数据类型
Web Service可以使用任何CLR支持的数据类型作为参数或者返回值。除了基本数据类型以为,还可以使用数组和基本类型的ArrayList。由于数据是通过XML在Web Service和客户端之间传递的,那么无论使用参数或返回值,都必须使用XML Schema或者XSD表示。
类和结构体:Web Service能够把用户定义的类和结构体作为参数或者返回值,这里有一些需要记住的规则:1。所有类变量必须是基本数据类型或者基本数据类型的数组;2。所有类变量必须是公开的或者有一个公开的实现get和set访问器的属性
DataSets:Web Service能够通过XML编码后返回任何数据,这也包括返回DataSet,这是因为ADO.NET内部使用XML来表示DataSet。一个DataSet仅是ADO.NET数据存储中的一种可以由Web Service返回的类型而已。
创建发现文档
一旦创建完成Web Service,负责开发Web Service使用程序的开发人员需要找到一种方法,从而能够了解服务器上有哪些Web Service可用,这些Web Service提供了哪些方法,这些方法和属性可接收哪些参数,以及这些Web 方法返回的值是什么。这个过程叫发现,是可选的。如果Web Service使用程序的开发者了解这些Web Service文件的URL,那么就不需要实施发现动作了。可以使用disco.exe在命令行方式下创建XML文件(即发现文档)。
打开vs命名提示符(注意不是在运行里输入cmd出来的那个命令提示符)
输入:disco /out:<输出目录名称> http://localhost:7953/Service1.asmx
通过以下两种方法发现发现文档:
1。通过查询字符串实现发现,即在service.asmx文件后加上?disco,如http://localhost:7953/Service1.asmx?disco
2。静态发现文件。如果Web Service得使用程序需要使用静态发现文件,那么Web Service开发人员必须创建一个静态发现文件。
发现是一个过程,它是用来寻找那些Web Service可用、Web Service提供了哪些方法和属性、方法和那些参数和属性,已经web方法返回的数据类型和属性。它是一个可选过程。
为了实现在客户端机器上,从命令行执行disco工具,并把Web Service的URL作为参数传递给它,如disco http://localhost:7953/Service1.asmx,这个命令将搜索指定URL来寻找一个发现文档,并把它们保存在本地计算机的当前目录。还有一个.wsdl文件也将在当前目录生成并保存。
也可以使用/out:参数将输出目录改为指定的目录。如:disco /out:C:/Temp/ http://localhost:7953/Service1.asmx,执行该命令会把两个文件生成到输出目录的Service1.wsdl文件中,这个文件与通过在浏览器中输入.asmx?wsdl或者使用wsdl命令生成的wsdl是相同的。
下面是disco命令的参数说明
/d[omain]:domain 指定连接到要求身份验证的代理服务器时要使用的域名。
/nosave 不要将发现的文档或结果(.wsdl、.xsd、.disco 和 .discomap 文件)保存到磁盘中。默认为保存这些文档。
/nologo 取消显示 Microsoft 启动标题。
/o[ut]:directoryName 指定用于保存所发现文档的输出目录。默认为当前目录。
/p[assword]:password 指定当连接到要求身份验证的代理服务器时要使用的密码。
/proxy:URL 指定用于 HTTP 请求的代理服务器的 URL。默认为使用系统代理设置。
/proxydomain:domain或/pd:domain 指定连接到要求身份验证的代理服务器时要使用的域。
/proxypassword:password或/pp:password 指定当连接到要求身份验证的代理服务器时要使用的密码。
/proxyusername:username或/pu:username 指定连接到要求身份验证的代理服务器时要使用的用户名。
/u[sername]:username 指定连接到要求身份验证的代理服务器时要使用的用户名。
/? 显示该工具的命令语法和选项。
部署
部署Web Service与部署网页差不多。.asmx文件必须位于IIS提供的虚拟目录中,这样它才可以被浏览器访问到。如果有一个Web Service的.disco文件,那么这个文件也必须放在应用程序虚拟目录下。同样,如果应用程序需要创建一个web.config文件,那么也必须复制到应用程序虚拟目录中。
预编译程序集
和使用网页一样,对于已编译的类和资源,既可以使用预编译的assemblies,也可以使用动态编译的assemblies来处理。
使用vs创建客户端
下面用一个实例来创建客户端程序来调用前面章节创建的Web Service(即StockWebService)
新建一个asp.net应用程序(也可以是winform窗体程序),右击解决方案,选择添加Web引用,如下图所示
弹出如下图的添加Web引用的界面。
在URL中输入http://localhost:7953/Service1.asmx,即web service的地址,注意此时web service需处于运行状态,点击右边的箭头,会将该web service中的方法查询出来,我们可以点击某个方法看具体的信息,如点击GetName ,则会出现调用的参数及SOAP、POST、GET对应的XML文档。如下图所示:
填写web引用的名字后就可以添加web引用了。此时会发现asp.net应用程序中多了一些文件,此时的目录结构如下图所示:
双击刚刚添加的web引用的名称localhost打开对象浏览器,可以看到web Service项目下的一些事件及参数,其中:方法名+Completed+EventArgs表示事件参数,方法名+Completed+EventHandler表示事件处理方法。
如下图所示:
查看asp.net应用程序的目录,发现生成了两个目录Service References和Web References,其中Web References目录下存放的是我们刚才添加的web引用,里面的四个文件为:Reference.cs、Reference.map、Service1.disco和Service1.wsdl。并且在web.config中自动添加了如下的代码:
<applicationSettings>
<WebCallService.Properties.Settings>
<setting name="WebCallService_localhost_Testttt" serializeAs="String">
<value>http://localhost:7953/Service1.asmx</value>
</setting>
</WebCallService.Properties.Settings>
</applicationSettings>
然后再后台代码中就可以调用web service了,注意有一个类为Testttt,这是我们重命名的一个Service。
后台调用代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
localhost.Testttt proxy = new localhost.Testttt();
Response.Write("web:" + proxy.GetName("a"));
}
即在页面放一个button,点击button后返回Name,这样运行的结果为web:Symbol not found.
当然,我们也可以把Web Service发布到IIS,至于怎么配置IIS,这个可以参考我的博客http://www.cnblogs.com/alexis/archive/2010/04/10/1708922.html
还有一个要注意的是,如果你用的是.net framework 4的话,那么需要注册一下,以管理员身份运行命令提示符,转到C:\Windows\Microsoft.NET\Framework\v4.0.30128(不一定是这个目录,反正类似),然后使用aspnet_regiis -i命令注册。
接下来就是要发布Web Service。用管理员身份运行vs,右击解决方案,选择发布,选择发布到IIS,建立虚拟目录,发布。在浏览器中输入地址(没有端口号,即默认80)可测试是否发布成功。
发布成功后,可以参照上面的方法调用Web Service,只不过此时是IIS提供Web Service。
作者:Alexis
出处:http://www.cnblogs.com/alexis/
分享到:
相关推荐
在本学习笔记中,我们将深入探讨Web服务的核心概念、技术栈以及实际案例。 一、Web服务的核心概念 1. **SOAP (Simple Object Access Protocol)**:SOAP是一种基于XML的协议,用于交换结构化信息,是Web服务的基础...
3. WS-Policy Framework:用于定义Web服务中各个组件的能力和特性,通过策略断言和策略运算符组合,形成策略选择项,描述服务的安全、事务、可靠消息传输和寻址等特性。 4. WS-I(Web Services Interoperability ...
Web Service 即 web 服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。 Java 中共有三种 Web Service 规范: - JAX-WS(JAX-RPC): 基于 xml 数据 - JAXM&SAAJ - JAX-RS:基于 xml 或 json 数据
WebService学习笔记 Web Service 是一种软件系统,为了支持跨网络的机器间相互操作交互而设计。它通常被定义为一组模块化的 API,它们可以通过网络进行调用,来执行远程系统的请求服务。在传统的程序编码中,存在...
Web Service入门学习笔记 Web Service是一种基于互联网的、平台无关的通信协议,它允许不同系统间的应用程序通过网络互相调用,实现数据交换和服务共享。在本文中,我们将深入探讨Web Service的基本概念,以及如何...
**Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...
里面只有这样几句话:“交易消息(包括请求和应答)是以XML格式表达的,包括两个部分:Message Header(消息头)与Service Content(交易业务内容)。” “接口协议使用HTTP协议,落地方为发起方提供访问的URL,发起方...
这篇学习笔记将主要围绕JSP展开,探讨其基本概念、语法以及如何在实际开发中运用。 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP...
### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...
在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...
综上所述,尚硅谷的Web Service学习笔记涵盖了XML Schema、HTTP协议基础以及Web Service的核心概念和应用,为深入理解和实践Web Service提供了基础知识。要了解更多关于Web Service的详细内容,可以通过指定的学习...
- Servlet接收到请求后,调用`service()`方法处理请求。 - 处理完成后,服务器可能会保持Servlet实例以处理后续请求,直到应用程序停止或Servlet被显式卸载。 4. **Servlet生命周期** - 实例化:首次请求Servlet...
以上是关于 JavaWeb 学习笔记中提到的主要知识点,包括 Web 应用的基本概念、目录结构、配置文件详解以及 Tomcat 的虚拟目录和虚拟主机配置方法。希望这些内容能帮助初学者更好地理解 JavaWeb 开发的核心要素和技术...
【VS.NET学习笔记】 Visual Studio .NET(简称VS.NET)是微软公司开发的一款强大的集成开发环境,用于构建基于.NET Framework的应用程序。这个平台为开发者提供了丰富的工具和功能,支持多种编程语言,如C#、VB.NET...
读书笔记:学习《java restful web service实战》自己写的代码
Servlet是Java Web编程的基础,它通过Servlet接口定义了一系列生命周期方法,如init()、service()和destroy()。其中,service()方法是核心,它会调用doGet()或doPost()方法来处理HTTP请求。doGet()和doPost()方法是...