zoukankan      html  css  js  c++  java
  • 使用 ASP.NET 创建的 XML Web 服务的概述

     

    本节介绍使用 ASP.NET 创建的 XML Web 服务。有关创建/公开 XML Web 服务的更多信息,请参阅 ASP.NET 快速入门。有关将 XML Web 服务与 Windows 窗体一起使用的更多信息,请参阅 Windows 窗体和数据访问快速入门

    Internet 正在向下一代 Web 站点快速演进,今天的 Web 站点仅能为浏览器提供用户界面,而下一代可编程 Web 站点直接将企业、应用程序、服务和设备彼此链接。这些可编程 Web 站点将不只是被动访问的站点,而将成为可重用的智能 Web 服务。

    公共语言运行库提供以 ASP.NET Web 窗体开发人员和现有的 Visual Basic 用户所熟知的、一致的方式使用编程抽象概念来创建和公开 Web 服务的内置支持。生成的模型既可以伸缩也可以扩展,并且满足开放式 Internet 标准 (HTTP、XML、SOAP、WSDL),因此可以从任意的客户端或支持 Internet 的设备访问和使用该模型。

    ASP.NET Web 服务

    ASP.NET 使用 .asmx 文件提供 Web 服务支持。.asmx 文件是类似于 .aspx 文件的文本文件。这些文件是包含 .aspx 文件的 ASP.NET 应用程序的一部分。与 .aspx 一样,这些文件是 URI 可寻址的。

    以下示例说明了一个非常简单的 .asmx 文件。

    <%@ WebService Language="C#" Class="HelloWorld" %>
    
    using System;
    using System.Web.Services;
    
    public class HelloWorld : WebService {
    
         [WebMethod] public String SayHelloWorld() {
              return "Hello World";
         }
    
    }
    
    C# VB JScript  

    此文件的开始是一条 ASP.NET 指令 WebService,然后将语言设置为 C#、Visual Basic 或 JScript。接着,它导入命名空间 System.Web.Services。您必须包括此命名空间。接下来,声明 HelloWorld 类。此类是从基类 WebService 派生的(说明:从 WebService 基类派生是可选的)。最后,使可以作为服务的一部分进行访问的所有方法都在其签名的前面设置属性(在 C# 中为 [WebMethod],在 Visual Basic 中为 <WebMethod()>,在 JScript 中为 WebMethodAttribute)。

    为使此服务可用,我们可以将该文件命名为 HelloWorld.asmx, 并将其放置到名为 SomeDomain.com 的服务器上名为 someFolder 的虚拟目录内。使用 Web 浏览器,然后就可以输入 URL http://SomeDomain.com/someFolder/HelloWorld.asmx,生成的页将显示此 Web 服务(用 WebMethod 属性标记的服务)的公共方法,以及可用来调用这些方法的协议(例如 SOAP 或 HTTP GET)。

    将地址 http://SomeDomain.com/someFolder/HelloWorld.asmx?WSDL 输入到浏览器中,这将返回一个 Web 服务描述语言 (WSDL) 文档。此 WSDL 文档非常重要,并且不能由访问该服务的客户端使用。

    访问 Web 服务

    除了 ASP.NET 服务器端的技术允许开发人员创建 Web 服务之外,.NET 框架还提供了一组高级的工具和代码来使用 Web 服务。因为 Web 服务基于开放式协议(如简单对象访问控件 (SOAP)),所以该客户端技术也可以用于使用非 ASP.NET Web 服务。

    在 SDK 中,有一个名为 Web 服务描述语言工具 (WSDL.exe) 的工具。此命令行工具用于从 WSDL 创建代理类。例如,您可以输入:

    WSDL http://someDomain.com/someFolder/HelloWorld.asmx?WSDL
    

    来创建一个名为 HelloWorld.cs 的代理类。

    此类与在前一节中创建的类非常相似。它将包含一个返回字符串的名为 SayHelloWorld 的方法。将此代理类编译到一个应用程序中,然后调用此代理类的方法,这样将生成一个代理类。生成的代理类将通过 HTTP 包装 SOAP 请求并接收以 SOAP 方式编码的响应(随后将该响应作为字符串封送)。

    从客户端的角度来看,代码简单明了,如下例所示。

    HelloWorld myHelloWorld = new HelloWorld();
    String sReturn = myHelloWorld.SayHelloWorld();
    
    C# VB JScript  

    The return would be "Hello World".

    本节的余下部分将讨论更高级的 Web 服务主题,例如发送和接收复杂数据类型。还有一节将讲述文本模式匹配,这是一种针对任何 URI 的技术,它将文本作为 Web 服务返回。您还可以使用 Web 服务执行数据绑定操作,这个主题在"数据"一节中讨论。

  • 相关阅读:
    windows下常用linux对应工具
    常用工具备忘
    spring使用@Value标签读取.properties文件的中文乱码问题的解决
    一致性哈希算法(适用于分库分表、RPC负载均衡)转
    使用事件和消息队列实现分布式事务(转+补充)
    关于架构优化和设计,架构师必须知道的事情(转)
    做了 3 年企业级 SaaS,我收获的 10 点心得(转)
    这五件事,二次SaaS创业的老炮儿都在做(转)
    阿里云端口失效导致tomcat无法对外提供服务
    SaaS公司融资的「22条军规 」(转)
  • 原文地址:https://www.cnblogs.com/wy/p/230996.html
Copyright © 2011-2022 走看看