- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Web Service 编程第九章讲稿
* * * * * * * * * * * * * * * * * * * * Web Service 编程C#.NET 第九章 开发基于.NET平台的WEB服务 本章要点: 不同的WEB服务协议对数据类型限制 掌握提高Web Service性能的一般方法 掌握提高Web Service可靠性的一般方法 聚合WEB服务 数据类型约束 协议约束 结构和类的比较 类型化数据集和非类型化数据集的比较 数组和集合的比较 异常 协议约束 数据类型 SOAP POST GET 基元类型 ? ? ? 枚举类型 ? ? ? 基元类型数组 ? ? ? 类和结构 ? ? ? 类和结构的数组 ? ? ? XmlNode ? ? ? XmlNode 的数组 ? ? ? 选择合适的协议 选择协议的注意事项 GET 和 POST 方法只支持基元类型、枚举类型和基元类型数组 SOAP 把复杂类型封装在 XML 中,并标准化调用格式 SOAP 支持丰富的功能扩展 HTTP 方法的优点 HTTP 协议比 SOAP 协议使用面更广 HTTP 协议的访问流量比 SOAP 小 如果禁用 HTTP GET 方法,就不能直接访问 Web 服务的 URL 进行测试 修改所支持的协议 缺省情况下,新建的 Web 服务对 SOAP、HTTP GET 和 HTTP POST 方法都支持,使用下面的代码示例在 web.config 文件中修改这个缺省配置 configuration system.web webServices protocols remove name=HttpGet / remove name=HttpPost / /protocols /webServices /system.web /configuration 结构和类的比较 Web 服务传递类的对象时并不是以远程对象的形式完整实现,只是把对象中的公共属性值和字段进行远程传递 从 Web 服务消费者的角度来看,类和结构没有很大的区别 XSD 的复杂数据类型支持继承,但是结构不支持继承,因此类比结构在 Web 服务中更加常用 类型化数据集和非类型化数据集的比较 类型化数据集的优点 代码更加容易读懂 微软 IntelliSense? 智能感知技术完全支持类型化数据集 结构化数据集的语法提供了编译时的类型检查 使用非类型化数据集的场合 没有数据集架构,例如从第三方获得的数据集 数据没有静态可预测的结构 数据集是动态创建的,不适合定义架构 数组和集合的比较 在设计 Web 服务时要尽量使用强类型 不管是使用数据还是集合,都应该尽量避免异构的出现 由于在多数情况下数组保存的是相同类型的数据,因此数组是比较常用的数据类型 使用异构类型时,必须在方法属性中使用 XmlInclude 加以说明 异常 使用返回值的方法处理 程序员往往会忽略 Web 服务方法返回的错误代码 使用抛出异常的方法处理 HTTP 协议的方法不支持这种处理方法,发生异常时只简单显示错误代码 500 必须使用 SOAP 类来支持异常处理 使用 SoapException 类来处理 性能 常规性能考虑事项 .NET 需要考虑的具体事项 Web 服务中的缓存 异步服务器端方法 常规注意事项 缓存 如果缓存了错误的数据就意味着浪费内存 如果缓存了过多数据,那么其他应用程序使用的内存就会减少 如果缓存的数据太少,则发挥不了缓存的效果,因为没有缓存的数据必须重新构造和处理 如果对时间敏感的数据缓存时间太长,很可能使缓存数据失效 必须及时检查并释放无效的数据缓存项 常规注意事项 通常在使用 Application 存储可更新状态时使用锁 不要过度保护数据,即不要在没必要的数据上设置锁,也不要设置太长的上锁时间 把数据分区,这样就可以有选择地设置锁,保护重要的数据 使用 System.Threading 命名空间的 Interlocked 类在修改数据时自动设置锁 对不常修改的数据设置“多个读取/单个写入”的锁 常规注意事项 异步调用 当方法的执行时间较长时使用 调用的形式是 Beginxxxx/Endxxxx 方法对 衡量性能和行为的方法 .NET 中提供了用于衡量性能和行为的测试工具 不必要的代码 程序员在实现功能后应该尽量删除不会被执行的代码 if (mySwitch.TraceVerbose) Trac
文档评论(0)