Webservice知识小结(C#和.NET学习笔记)

一、Webservice

WSE开发平台是依靠httpsoap方法完成它的工作的。实际生产中,应该禁用httpsoap之外的方法以增加产品的安全性。可以通过服务的web.config文件或machine.config文件。

加入以下代码实现:

<configuration>

 <system.web>

<webservice>

              <addname =”httpsoap 1.2” >

              <addname =”httpsoap”>

              <removename =”httpget”>

              <removename=”httppost”>

              <removename=”httppostlocalhost”>

              <removename=”Documentation”/>

二、SOAP消息

SOAP是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。

SOAP的3个主要特性

A 能够对SOAP语言进行扩展以实现新的通信协议(加密、身份认证和事务)

B 能够使用SOAP语言编码的消息可以通过任意的网络协议如HTTP、TCP、UDP或SMTP传输

C SOAP支持任意类型的消息交换模型

SOAP 是一种简单的基于 XML 的协议,它使应用程序通过HTTP 来交换信息。

1、 SOAP消息包含一个名为<Envelope>的根元素,该元素在开始部分可以有选择地包含一个<header>元素但必须在之后包含一个<body>,<body>元素包含了被编码成XML格式的业务数据

2、 <header>元素包含了以XML格式编码的数据,它由诸如WS-*规范的实现这类的SOAP扩展创建并使用,SOAP语言本身没有定义<header>的子元素,只有WS-*规范为各自的应用定义了一些子元素。其中每个涉及消息传输的规范都在<header>中添加了各自的一些子元素,正是由于该机制的存在,SOAP语言才有良好的扩展性

 

3、 对SOAP消息体编码

Soap消息体中包含的数据(在 <body>元素中)通常以XML文档的形式表示,而它的Schema则是在服务的契约中指定的。该方式称为Document/Literal。因为数据被格式化成一份XML文档并在字面上遵循某个XSD Schema

而我们之前谈到的SOAP语言拥有一段面向对象的历史,这为我们提供了SOAP消息体中的数据的另一种编码方式,即RPC/encoded。该技术更适用于RPC风格的同步请求/响应消息交换模式。该编码方式作为SOAP规范中的一部分,描述了如何根据一套规则将方法的输入输出参数以XML格式序列化,其中的规则定义了对象、表、结构以及对象图的序列化方式是。

 

4、 SOAP错误消息

 <Fault>元素

5、 SOAP与底层传输协议;

 1.2版的SOAP规范只描述了它与HTTP协议之间的关系,其中它与HTTP协议所支持的同步请求/响应消息交换模型建立了自然的联系

 

 

三、            消息交换模型

 

五、WEB服务契约与WSDL语言

Web service Description Language

WSDL语言由一个名为<definitions>的根元素及7个子元素构成,这7个元素可以分成以下两类:

1、<type><message><operation>与<portType>元素用于描述一个web服务所提供的契约。

2、<binding><port><service>元素用于指定契约与它们的实现之间的联系,除了建立web方法与服务的特定操作的联系,还涉及描述服务实现的其他方面的联系,如网络协议以及Soap消息中数据的编码格式。

<type>元素

包含了将出现在交换的SOAP中的数据的XSD架构,注意,<type>元素是必须的,不过,如果在<import>根元素中导入了schema则它的内容可以为空

 

<message>元素

每个<message>元素定义了一个SOAP输入消息、输出消息或错误消息,每个<message>元素的<part>子元素都引用了一个数据schema。由于一个SOAP消息可以包含多个组成部分,一次一个<message>元素可以包含多个<part>

 

<wsdl:message name="GetTownFromLatLonSoapIn">

  <wsdl:part name="parameters" element="tns:GetTownFromLatLon" />

  </wsdl:message>

- <wsdl:message name="GetTownFromLatLonSoapOut">

  <wsdl:part name="parameters" element="tns:GetTownFromLatLonResponse" />

  </wsdl:message>

<operation>元素

每个<operation>元素都定义了web服务中每个操作所支持的SOAP消息,

<porttype>元素

定义一系列服务所支持的操作。

如果从面向对象的角度看待WSDL语言,那么<type>元素的类型可以看作是结构

<message>看作是方法签名,而<operation>和<porttype>看作是面向对象语言的方法与接口

 

 

 

 

你可能感兴趣的:(webservice)