惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
月光博客
月光博客
WordPress大学
WordPress大学
C
Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 【当耐特】
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
量子位
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
T
Threat Research - Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 热门话题
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
V2EX - 技术
V2EX - 技术
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
宝玉的分享
宝玉的分享
Project Zero
Project Zero
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
N
Netflix TechBlog - Medium
S
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 聂微东

博客园 - Laeb

ASP.NET Web 页面语法概览 ASP.NET Web 页面中的新事物 渐增的许可 介绍 ASP.NET Web 页面 管理工具 ASP.NET Web 页面概览 检测何时需要更改安全策略 安全策略管理的概览 System.Net 类的最佳习惯 异常处理的最佳习惯 面向世界应用程序开发的最佳习惯 为并发执行而创建应用程序与组件的指南 ASP.NET 控件与可访问 ASP.NET 中的可访问支持 实践:创建自定义 HTTP 模块 HTTP 模块介绍 实践:创建 HTTP 处理器工厂 实践:注册 HTTP 处理器 实践:创建同步 HTTP 处理器
使用 ASP.NET 所创建的 XML Web 服务的设计指南
Laeb · 2007-03-25 · via 博客园 - Laeb

Web 服务是一种强大的技术,它提供了可以跨越互联网而被编程访问的服务。下列建议可以帮助你精通 Web 服务的创建:

  • Web 服务同时支持客户端与托管了 Web 服务的服务器之间的同步与异步通信。在同步通信之下,客户端发送一个服务请求给托管服务的服务器并且等待回应。这防止了来自于完成其他操作的客户端对于结果的等待。不管怎样,异步通信都会导致客户端与等待回应一样来继续处理其他任务。当客户端变得可用的时候,就会对服务请求的结果产生回应。

    当你使用 Web Services Description Language 工具(Wsdl.exe)来创建你的代理类的时候,它会为该类中方法而产生标准的同步版本与异步版本。异步版本由被称为 Begin 与 End 的两种方法所组成。Begin 方法是用来初始化 Web 服务,而 End 方法则获取结果。

    使用异步通信改进了系统用途并且避免了客户端等待 Web 服务结果的延迟。

    关于代码范例,参考[实践:从 Web 服务客户端产生异步调用]。关于异步通信的额外信息,参考[以异步 XML Web 服务进行通信]。

  • 跨越互联网产生诸多的服务请求可以影响客户端应用的性能。当设计你的 Web 服务的时候,通过创建组合彼此相关的信息的方法来高效地使用服务请求。例如,假设你拥有一个获取关于书籍信息的 Web 服务。替代成单独的方法来获取书籍的标题,作者和出版商,创建一个在一个服务请求中返回所有这些信息的方法。然而在同一时间内传送大量的信息要比多个更小量的信息要更加有效率。
  • 关于代码范例,参考[实践:把相关的信息分组进一个单独的 Web 服务方法]。当设计你的 Web 服务的时候,确保使用了标准的面向对象编程习惯。并且使用封装来隐藏实现细节。关于更多复杂的 Web 服务,你可以使用继承与多态来重用代码并且简化你的设计。
  • 关于代码范例,参考[实践:在 Web 服务中使用继承]。使用输出缓存来改进你的 Web 服务的性能。当输出缓存被开启的时候,服务请求的结果就会为了一个特定的持续时间而被存储在输出缓存中。如果产生了类似的 Web 服务,那么结果就可以从缓存中被获得,胜于它的重新计算。这样通过减少 Web 服务服务器所必需的处理而改进了 Web 服务器的反应时间。缓存还可以同时在客户端与服务器中被完成。Duration 属性允许你指定时间量来缓存 Web 服务的输出。

    在客户端启用输出缓存的指令是:

    <%@ OutputCache Duration="60" %>

    关于代码范例,参考[实践:启用 Web 服务客户端中的输出缓存]。你同样可以使用 WebMethod 特性类的 CacheDuration 属性来启用服务器中的缓存。关于代码范例,参考[实践:为 Web 服务器启用服务器端输出缓存]。

  • 当设计你的 Web 服务的时候,尝试下列关于结构如何被格式化的结构。
  • Web 服务把 SOAP 当作主要的传输协议与序列化协议。一条 SOAP 消息由一个可选的头部集合与消息体所组成。头部片段由可以通过 Web 服务器中的架构而被处理的信息所组成。SOAP 并没有定义任何头部。而体片段包含了通过应用程序而被处理的信息,比如 Web 服务的参数或者返回值。

    关于使用 SOAP 头部的额外信息,参考[使用 SOAP 头部]。

  • 为你的 Web 服务提供文档,比如一个静态的 HTML 文件,描述你的服务的操作与数据结构。同样包括了如何使用 Web 服务的范例。并且不要依赖于把服务帮助页面的服务描述当作你唯一的文档。