知识大全 vs.net中web services入门
Posted 属性
篇首语:青年是学习智慧的时期,中年是付诸实践的时期。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 vs.net中web services入门相关的知识,希望对你有一定的参考价值。
Visual 中的XML Web services入门
目录
简介 用托管代码编写的 XML Web services 使用 Visual Studio 创建 XML Web services 使用 Visual Studio 部署 XML Web services 使用 Visual Studio 访问 XML Web services 总结
一 简介
XML Web services是可以由潜在的异类系统通过Internet访问的可编程单元 XML Web services在很大程度上依赖于已经被广泛接受的支持互操作的XML HTTP和其他Internet标准
XML Web services可以由单个应用程序在内部使用或通过Internet对外公开供多个应用程序使用 XML Web services可通过标准接口进行访问 允许异类的系统以同一种Web方式协同工作
XML Web services没有追随一般的代码可移植性功能 而是提供了一个使数据和系统能够协同工作的可行的解决方案 XML Web services使用基于XML的消息在多个使用不同组件模型 操作系统和编程语言的系统间交换数据 采用与通常在分布式应用程序中使用组件相同的方法 开发人员可以创建应用程序 将不同来源的XML Web services组合在一起
XML Web services的一个核心特征是在服务的实施和使用方面的高度抽象 通过将基于XML的消息用作创建和访问服务的机制 XML Web services客户端和XML Web services提供商除了需要了解对方的输入 输出和位置以外 不再需要任何其他信息
XML Web services将分布式应用程序的开发带入了新的时代 使用专有结构的紧耦合系统牺牲了应用程序的互操作性 XML Web services将互操作性推到了一个全新的高度 作为新一代Internet的革命性进步 XML Web services将成为链接所有计算设备的基础结构
有关详细信息 请参阅Programming the Web with XML Web services
二 用托管代码编写的XML Web services
ASP NET页框架同时也作为采用托管代码的XML Web services的框架 因此 XML Web services可以访问 NET框架的许多功能 如身份验证 缓存和状态管理 这样一来 开发人员便可以专注于创建或访问XML Web services 而无需编写基础结构代码
在ASP NET应用程序模型中 Web页专供使用 aspx扩展名的浏览器使用 为了使XML Web services和常规ASP NET页区分开来 XML Web services使用 asmx扩展名
XML Web services由XML Web services入口点和实现XML Web services功能的代码组成 在ASP NET中 asmx文件充当XML Web services的可寻址入口点 它引用预编译程序集中的代码 文件的支持代码或 asmx文件本身包含的代码
使用XML Web services时 有两种基本的操作
创建XML Web services 创建XML Web services时 实际上是在创建一个将功能向XML Web services客户端公开的应用程序
访问XML Web services 访问XML Web services时 客户端应用程序将查找 引用并使用XML Web services中包含的功能 XML Web services 可以是独立的应用程序或大型 Web 应用程序的子组件 最低要求是客户端必须能够向 XML Web services 发送消息
有关详细信息 请参阅 XML Web services in Managed Code
三 使用 Visual Studio 创建 XML Web services
要使用 Visual Studio 创建采用托管代码的 XML Web services 需要访问为开发 ASP NET 应用程序(该应用程序将在 Web 项目的环境中创建)而配置的 Web 服务器 Web 项目的种类很多 当您要在 Visual Studio NET 中使用采用托管代码的 XML Web services 时 可以使用 ASP NET Web Service 项目模板 在 Visual Studio 中创建 XML Web services 项目后 就会看到 Component Designer(组件设计器) 组件设计器是 XML Web services 的设计界面 可以使用 Design(设计)视图向 XML Web services 添加组件 并使用 Code(代码)视图查看或编辑与 XML Web services 关联的代码
在 Visual Studio 中创建 ASP NET Web Service 项目后 它将在 Web 服务器上构造一个 Web 应用程序项目结构 同时在您的本地计算机上构造一个 Visual Studio 解决方案文件 解决方案文件 ( sln) 包含配置和生成设置 并且保存著一系列与项目关联的文件 此外 Visual Studio 将自动创建支持 XML Web services 所必需的文件和引用 完成后 Visual Studio 集成开发环境 (IDE) 将在 Design(设计)视图中显示 asmx 文件
默认情况下 当您使用 ASP NET Web Service 项目模板创建 XML Web services 时 Visual Studio 将使用 支持代码文件 (如 Service asmx VB 或 Service asmx cs) 支持代码文件包含实现 XML Web services 功能的代码 默认情况下 Solution Explorer(解决方案资源管理器)会隐藏支持代码文件 当查看 asmx 文件的 Code(代码)视图时 实际上您是在查看支持代码文件的内容 asmx 文件本身包含处理指令 WebService 它指示在何处可以找到 XML Web services 的实现方案 生成采用托管代码的 XML Web services 后 ASP NET 将自动提供基础结构并处理 XML Web services 的请求和响应 包括分析和创建简单对象访问协议 (SOAP) 消息 编译的输出是一个 dll 文件 该文件位于项目的 bin 文件夹中
有关详细信息 请参阅 Creating XML Web services in Managed Code
WebService 处理指令
WebService 处理指令为 ASP NET 环境提供了必要的信息 如实现 XML Web services 功能的类 以下是 asmx 文件中 WebService 处理指令的示例
Visual Basic<%@ WebService Language="vb" Codebehind="Service1.asmx.vb"Class="WebService1.Service1" %>
// C#<%@ WebService Language="c#" Codebehind="Service1.asmx.cs"Class="WebService1.Service1" %>
注意 要在 Solution Explorer(解决方案资源管理器)中查看 asmx 文件的内容 请用右键单击 asmx 文件 然后单击快捷菜单中的 Open With(打开方式)
在 Open With(打开方式)对话框中 选择 Source Code (Text) Editor(源代码 [文本] 编辑器) 然后单击 Open(打开)
Language 属性指示开发 XML Web services 所使用的编程语言 可以使用任何与 NET 兼容的语言(如 Visual Basic NET 或 Visual C#)来创建 XML Web services 与 asmx 页关联的支持代码文件由 Codebehind 属性来指示 Class 属性指示支持代码文件中用来实现 XML Web services 功能的类
有关详细信息 请参阅 Code Model for XML Web services in Managed Code
System Web Services WebService 类
System Web Services WebService 类定义了 XML Web services 的可选基类 并提供了直接访问常见 ASP NET 对象(如应用程序和会话状态的对象)的权限 默认情况下 使用 Visual Studio 以托管代码的形式创建的 XML Web services 继承此类 XML Web services 可以继承此类以获得访问 ASP NET 固有对象(如 Request 和 Session)的权限
如果 XML Web services 没有继承此类 也可以从 System Web HttpContext Current 访问 ASP NET 固有对象 实现 XML Web services 的类必须是公共的 并且必须有一个公共的默认构造函数(不带参数的构造函数) 这样 ASP NET 就能够创建 XML Web services 类的实例以处理传入的 XML Web services 请求
有关详细信息 请参阅 Inheriting from the WebService Class
WebService 属性
每个 XML Web services 都需要唯一的命名空间 它可使客户端应用程序区分出可能使用相同方法名称的 XML Web services 在 Visual Studio NET 中创建的 XML Web services 的默认命名空间是 尽管命名空间类似于典型的 URL 但在 Web 浏览器中是不能查看的 它只是一个唯一标识符
注意 您可能希望在包含有关您所提供的 XML Web services 信息的位置提供一个 Web 页
WebService 属性提供以下属性
◆Description 此属性的值包含描述性消息 此消息将在 XML Web services 的说明文件(例如服务说明和服务帮助页)生成后显示给 XML Web services 的潜在用户 ◆Name此属性的值包含 XML Web services 的名称 默认情况下 该值是实现 XML Web services 的类的名称 Name 属性标识 XML Web services 的 XML 限定名称的本地部分 Name 属性也用于在服务帮助页上显示 XML Web services 的名称 ◆Namespace此属性的值包含 XML Web services 的默认命名空间 XML 命名空间提供了一种在 XML 文档中创建名称的方法 该名称可由统一资源标识符 (URI) 标识 使用 XML 命名空间 可以唯一标识 XML 文档中的元素或属性 因而 在 XML Web services 的服务说明中 Namespace 被用作与 XML Web services 直接相关的 XML 元素的默认命名空间 如果不指定命名空间 就使用默认命名空间
以下示例代码说明了 WebService 属性的用法
Visual Basic
// C#[WebService(Namespace=//MyServer/MyWebServices/",Description="此处可以放一些描述性文字。",Name="MyFavoritesService")]public class Service1 : System.Web.Services.WebService // 实现代码。
有关详细信息,请参阅 Using the WebService Attribute。
WebMethod 属性
以托管代码创建 XML Web services 时,通过在 Public 方法声明之前放置 WebMethod 属性可以指定在 XML Web services 中可用的方法。Private 方法不能充当 XML Web services 的入口点,尽管它们可以采用相同的类并且 XML Web services 代码可以调用它们。WebMethod 属性必须应用到可用作 XML Web services 一部分的每种公共方法中。
WebMethod 属性包含配置 XML Web services 行为的几个属性。例如,可以使用此属性在相关服务帮助页提供一个简短说明。
WebMethod 属性提供以下属性:
◆BufferResponse当设置为 True(默认设置)时,ASP.NET 将响应向下发送到客户端之前先缓存整个响应。缓存是一种非常有效的方法,可以通过减少辅助进程和 Internet 信息服务 (IIS) 进程之间的通信来提高性能。当设置为 False 时,ASP.NET 会将响应缓存在 16 KB 的区块中。通常,只有在不想一次将响应的全部内容都缓存在内存中时,才将此属性设置为 False。例如,正在写回一个将项流出数据库的集合。除非另行指定,否则默认值为 True。 ◆CacheDuration 此属性的值指定 ASP.NET 缓存每个唯一参数设置结果所需的秒数。除非另行指定,否则默认值为 0,此设置将禁用结果缓存。 ◆Description此属性的值提供了对 XML Web services 方法的说明,显示于服务帮助页中。除非另行指定,否则默认值为空字符串。 ◆EnableSession当设置为 False(默认设置)时,ASP.NET 将无法访问 XML Web services 方法的会话状态。当设置为 True 时,XML Web services 可以直接从 HttpContext.Current.Session 访问会话状态集合;在继承了 WebService 基类的情况下,也可以使用 WebService.Session 属性进行访问。 ◆MessageName此属性的值使 XML Web services 能够使用别名来唯一标识重载的方法。除非另行指定,否则默认值为方法名。当为 MessageName 指定值后,结果 SOAP 消息会反映出此名称而不是实际的方法名。 ◆TransactionOption此属性的值指定 XML Web services 方法是否可以作为事务的根对象。虽然可以将 TransactionOption 属性设置为 TransactionOption 枚举类型的任意值,但是 XML Web services 方法仅有两种可能行为:它不参与事务(Disabled、NotSupported 和 Supported),或是创建新事务(Required 和 RequiresNew)。除非另行指定,否则默认值为 TransactionOption.Disabled。要使用此属性,需要向 System.EntERPriseServices.dll 添加一个引用。此命名空间包含的方法和属性,提供了可在 + 服务中找到的分布式事务模型。
System.EnterpriseServices.ContextUtil 类允许您使用 SetAbort 或 SetComplete 方法设置该事务。
以下示例代码说明了 WebMethod 属性的用法:
\' Visual BasicPublic Class Service1Inherits System.Web.Services.WebService
// C#public class Service1 : System.Web.Services.WebService [WebMethod(BufferResponse=false,CacheDuration=60,Description="一些描述性的文字",MessageName="RetrieveData")]public DataSet GetBigChunkOfData()// 实现代码
有关详细信息,请参阅 Using the WebMethod Attribute。
四、使用 Visual Studio 部署 XML Web services
当使用 Visual Studio .NET 创建采用了托管代码的 XML Web services 时,应使用标准部署模型:编译项目,然后将结果文件部署到生产服务器。项目 .dll 文件包含 XML Web services 代码类文件(.asmx.vb 或 .asmx.cs)以及项目中的所有其他类文件,但不包含 .asmx 文件本身。然后,您可以将这一个项目 .dll 文件部署到生产服务器中,而无需附带任何源代码。当 XML Web services 接收到请求时,项目 .dll 文件将被加载并执行。
图1:部署 XML Web services
要将 XML Web services 部署到非开发服务器,可以添加 Web 安装项目,也可以将所需的文件复制到目标服务器。要使您的 XML Web services 可供其他人使用,需要将其部署到可供目标客户端访问的 Web 服务器。
有关详细信息,请参阅 Deploying XML Web services in Managed Code。
服务帮助页
从 Web 浏览器调用 .asmx 文件,而不提供已识别的查询字符串时,
.asmx 文件将为 XML Web services 返回一个自动生成的服务帮助页。
例如,要访问名为 Service1.asmx(本地计算机中 WebService1 项目的一部分)的 XML Web services 的服务帮助页,可使用以下 URL:。
此服务帮助页提供了 XML Web services 提供的以及您可以通过编程访问的方法的列表。每种方法都含有一个指向其详细信息的链接。另外,此帮助页还包括指向 XML Web services 说明文档的链接。
图 服务帮助页
服务帮助页的文件名在配置文件的
\\%Windows%\\Microsoft NET\\Framework\\[version]\\CONFIG\\DefaultWsdlHelpGenerator aspx
由于服务帮助页只是一个 ASP NET Web 窗体 因而可以对其进行替换或修改以包含其他项目(如公司徽标) 另外 也可以修改相关 nfig 文件的
有关详细信息 请参阅 Configuration Options for XML Web services Created Using ASP NET
服务方法帮助页
服务方法帮助页提供了与特定 XML Web services 方法相关的详细信息 本页允许您调用使用 HTTP POST 协议的方法 但是 随后却无法调用要求复杂输入参数(如 DataSet)类型的方法 另外 XML Web services 方法必须支持 HTTP POST 协议才能启用此功能 在服务方法帮助页的底部还提供了协议(XML Web services 方法所支持的)的请求和响应消息示例
targetNamespace=//Walkthrough/XmlWebServices/">
相关参考
知识大全 SOA and Web services 新手入门i学习
SOAandWebservices新手入门i学习 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
VS.NET:通过Web服务瞄准电子商务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从上次M
知识大全 VS.NET和.NET Framework精简版入门
VS.NET和.NETFramework精简版入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 .NET Framework中使用XML Web Service
.NETFramework中使用XMLWebService 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
WebService中保持ASP.net的状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 简
知识大全 在ASP.NET Atlas中调用Web Service
在ASP.NETAtlas中调用WebService 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 使用eclipse调用.net web service
以前我用的开发框架都是net现在换成javaEE框架和linux平台还需要一段时间的学习有时在测试工作中需要实现一些功能但是又不会用java实现怎么办呢?这里有一个方法使用net的框架开发webs
知识大全 使用 XML Web services 进行 Web 编程
使用XMLWebservices进行Web编程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! X
实例步骤 第一步在myeclipse中新建一个web项目名为webservicetest并导入依赖的jar包(cxfspringa
c#动态调用WebService 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs