创建Web服务

转载 2007年09月19日 17:37:00
 

把代码直接放到.asmx文件中或者从这些文件中引用Web服务类,都可以实现对Web服务的创建。如同ASP.NET页一样,在VS.NET中创建Web服务也使用后一种方法,目的是把问题讲述得更清楚一些。

如图26-1所示,创建Web服务项目PCSWebSrv1,此时系统会生成一系列的文件,他们与创建Web应用程序项目时所生成的一组文件相似。实际上,惟一的区别就是创建Web应用程序时生成的文件是WebForm1.aspx,而创建Web服务项目时生成的文件是Service1.asmx

  26-1

通过VS.NET并不能直接访问Service1.asmx中的代码,但是使用Notepad可以看到如下的代码:

<%@ WebService Language="c#" Codebehind="Service1.asmx.cs"

    Class="PCSWebSrv1.Service1" %>

上面代码的作用是引用VS.NET中的代码文件Service1.asmx.cs,在Solution Explorer中右击Service1.asmx,选择View Code,就可以访问Service1.asmx.cs文件。生成的代码如下所示(为了简化起见,这里省略了注释)

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Web;

using System.Web.Services;

 

namespace PCSWebSrv1

{

   public class Service1 : System.Web.Services.WebService

   {

      public Service1()

      {

         InitializeComponent();

      }

 

      #region Component Designer generated code

      private IContainer components = null;

 

      private void InitializeComponent()

      {

      }

 

      protected override void Dispose( bool disposing )

      {

         if(disposing && components != null)

         {

            components.Dispose();

         }

         base.Dispose(disposing);

      }

      #endregion

   }

}

这段代码包含几个标准命名空间引用定义了命名空间PCSWebSrv1,该命名空间包含一个Web服务类Service1的定义(它在Service1.asmx中引用)Service1是从System.Web. Services.WebService继承而来的它也包含与ASP.NET页面的后台编码文件(详见第25)类似的代码。这些代码是在VS.NET中设计Web服务所需要的,其中一部分代码是一个私有成员,包含了可以添加到Web服务中的组件。为了让Web服务类正确地释放资源,还有一个Dispose()方法,它可以清理这个集合中的所有组件。现在我们应在这个Web服务类上提供其他方法。

在通过Web服务添加可以访问的方法时,需要把方法定义为public,并使方法具有WebMethod属性。这个属性可以把我们想要的方法标记为可访问的。稍后将会学习返回类型和参数所用到的类型,现在仅添加下面的方法。

      [WebMethod]

      public String CanWeFixIt()

      {

         return "Yes we can!";

      }

接着编译该项目。将Web浏览器指向Service1.asmx,检查服务的工作情况(如果运行该项目,就会进入这个页面),如图26-2所示。

  26-2

在浏览器中显示的大多数文本都说明Web服务命名空间被设置为http://tempuri.org/。这在开发过程中不是问题,但以后应修改它。为此可以使用WebService属性,但目前不修改它。

单击方法名称,可以得到SOAP请求和响应的信息,此外,还可以得到一个示例,通过该示例对如何通过HTTP GETHTTP POST方法对请求和响应有一个感性的认识。另外,也可以单击Invoke按钮,对方法进行测试。如果方法需要简单的参数,在这个窗体中也可以输入它们。这样,就可以看到方法调用所返回的XML

<?xml version="1.0" encoding="utf-8"?>

<string xmlns="http://tempuri.org/">Yes we can!</string>

这说明方法运行良好。

单击图26-2的浏览器屏幕上的Service Description链接,可以查看Web服务的WSDL描述。其中最重要的部分是关于请求和响应的元素类型的描述:

   <types>

      <s:schema elementFormDefault="qualified"

                targetNamespace="http://tempuri.org/">

         <s:element FTEL="CanWeFixIt">

            <s:complexType />

         </s:element>

         <s:element FTEL="CanWeFixItResponse">

            <s:complexType>

               <s:sequence>

                  <s:element minOccurs="0" maxOccurs="1" FTEL="CanWeFixItResult"

                             type="s:string" />

               </s:sequence>

            </s:complexType>

         </s:element>

      </s:schema>

   </types>

该描述比较长,除了包含服务的各种绑定之外,还可以包含请求和响应所需类型的描述。

1. Web服务可以使用的类型

Web服务可以用于交换表26-1中所示的类型。

  26-1

String

Char

Byte

Boolean

Int16

Int32

Int64

UInt16

UInt32

UInt64

Single

Double

Guid

Decimal

DateTime

XmlQualifiedName

Class

struct

XmlNode

DataSet

enum

以上所有类型的数组都是允许的。还要注意,只能编组Classstruct类型的公共属性和字段。

相关文章推荐

创建Web服务

  • 2008-04-26 17:48
  • 116KB
  • 下载

创建您自己的i​​OS应用程序的Web服务,第一部分

按照本教程中的步骤学习如何创建iOS应用程序的Web服务后端称为iGlobe。 在我以前的TechRepublic的系列中,我们使用了现有的Web服务来创建iOS应用程序(“创建一个Web服务,零件 ...

创建博客-使用REST Web服务

API HTTPAuth

VS2013创建和调用Web服务

说到Web服务,我们主要有两种途径去创建和调用它,一种是基于Java的web服务,主要是JAX为主的;另一种是ASP.NET的方式去实现;相比之下,笔者更喜欢后者的实现方式,所以推出了Visual S...

用Java技术创建RESTful Web服务

简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范。它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代。 在本文中,了解 J...

WEBSERVICE入门02:创建web服务

本文主要讲的事基于JWS的web服务的构建 在构建web服务时,必须要声明表明SEI(Service EndPoint Interface,服务提供的接口)和SIB(Service Implement...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)