摘要: WCF客户端通过代理对象可连接至服务。如果服务管理员禁用了服务元数据公布或者出于性能原因,那么在客户端可以通过代码创建ChannelFactory对象连接至服务并与服务通讯;甚至还可以通过扩展ClientBase抽样类与服务交互。使用上述两种方式时有一个前提那就是服务开发人员可以提供包含服务合约的组件。如果该前提也不存在,只要你拥有描述服务接受的SOAP消息和服务发送的响应消息的文档时,那么你也可以使用WCF客户端访问该服务;你可以直接通过通道向服务发送消息。 阅读全文
posted @ 2011-08-01 12:33 On the road.... 阅读(1920) 评论(1) 推荐(2) 编辑
摘要: WCF服务的分发器可以在把消息传递至服务实例的方法之前或在接收到服务的响应消息之后,翻译并检查这些消息。如果你需要实现消息检查功能,那么你首先需要自定义检查消息的服务行为,然后通过硬编码将服务行为嵌入到代码中或扩展WCF服务行为并通过配置文件配置消息检查功能。 阅读全文
posted @ 2011-07-23 14:49 On the road.... 阅读(1572) 评论(3) 推荐(5) 编辑
摘要: 到目前为止,你已经很好地理解如何创建WCF客户端程序和服务,以及如何配置它们使两者之间可以相互通信。WCF一个非常引人注目的特点是可以通过配置文件配置服务和客户端。在配置文件的背后,WCF运行时使用配置信息创建发送和接收消息的架构,该架构使用配置文件中指定的协议,这些协议以某种方式编码并传送消息至服务操作对应的方法中。在实际工作中,你不可避免地会遇到通过代码来完成配置任务,这可能是由于程序或者服务需要自适应其运行的环境并且不需要管理员的介入。或者,由于安全原因,你可能不希望任何人修改程序的配置文件。比如,你可能不希望管理员激活或者关闭服务对外公布的元数据。此外,观察到WCF运行时运行客户端或服务时所执行的各种任务也是非常有好处的。在本小节中,你会进一步了解到WCF服务模型的工作流程,绑定与通道的相关知识,最后在ShoppingCartService服务中使用代码创建和使用自定义绑定。 阅读全文
posted @ 2011-07-21 12:08 On the road.... 阅读(1834) 评论(2) 推荐(3) 编辑
摘要: 通过公开网络传输的消息非常容易受到攻击。它们可能面临拦截、中断、改变等一系列令人讨厌的攻击。一些Web服务规范(WS-*)用于保护消息,并且在前面的章节中你也已经了解到WCF如何实现其中的一些规范。另外一个常见的安全问题是"重放攻击":第三方拦截消息并不停地推送这些消息至接收方。用于可靠地发送消息并消除重放攻击的相关规范是WS-ReliableMessaging规范。 严格地讲,可靠的消息传递和可靠的会话是两个不同但相关的概念。可靠的消息传送关注点在于确保消息仅仅传送一次,而可靠的会话提供发送和接收一系列可靠消息的环境。在WCF中,可靠的会话独立于可靠的消息传送;使用可靠的消息传送,你可以在客户端和服务之间提供点到点的可靠会话。本章将同事调查这两个方面;你将学习如何使用WCF提供可靠的会话和可靠的消息传送,以及学习如何配置重放识别。 阅读全文
posted @ 2011-07-09 12:27 On the road.... 阅读(2251) 评论(0) 推荐(3) 编辑
摘要: 在事务支持的下篇中,介绍了三点的内容。首先介绍如何设计支持事务的WCF服务。在设计时我们需要考虑事务、会话和服务实例模式;事务与消息传递;以及事务与多线程方面的问题。然后介绍了如何实现支持事务的工作流服务,并比较了事务性工作流服务和事务性非工作流服务。最后介绍了在实践中,如何处理长时间运行的工作流服务... 阅读全文
posted @ 2011-07-01 17:53 On the road.... 阅读(1761) 评论(0) 推荐(1) 编辑
摘要: 大部分程序通常需要确保其操作数据的一致性;通过事务可以帮助程序确保该一致性。在WCF中我们同样可以事务来保证其操作数据的一致性。在本章的上半部分,介绍了事务与两个事务标准:OLE事务和WS-AtomicTransaction事务;然后通过一步一步的练习(创建服务、配置服务端点、创建客户端,配置客户端端点,测试事务)在WCF中实现OLE事务;最后介绍了WS-AtomicTransaction事务。 阅读全文
posted @ 2011-06-29 17:28 On the road.... 阅读(2228) 评论(1) 推荐(3) 编辑
摘要: 企业使用WCF服务的一个主要原因是通过包装现有的组件和程序构建面向服务的应用,这些应用通过不仅简单而且适应力很强地方式重用。这种策略为企业带来了非常大的灵活性,因为它可以简单地响应快速变化的业务需求、并迅速地创建或更改系统以适应这些需求。 许多企业采用的业务过程都由一系列明确的、并按照特定顺序执行的步骤组成。其中一些步骤可能涉及调用服务的操作,这需要确保WCF服务的操作顺序应当与基本业务过程相匹配。你已了解到在服务的方法上通过操作行为特性,可以指定某个操作发起或终止一个会话;除此之外,服务几乎再不能控制客户端调用服务操作的顺序。这增加了强制客户端程序按照顺序调用服务操作的困难,此外这种方式还可能导致难以发现(并纠正)的错误。使用工作流来定义服务可以帮助解决这个问题,并且强制客户端按照一定的顺序调用服务的操作。 另外一个潜在的问题是谁负责真正地定义和实现业务过程的逻辑。 没有谁比业务分析师能更好地掌握企业所采用业务过程。你不应该期望一个业务分析师同时还精通WCF、或者掌握如何实现WCF服务的操作;很明显这些任务应当是开发人员负责的。另外一个方面,开发人员可能非常擅长构建重 阅读全文
posted @ 2011-06-27 10:19 On the road.... 阅读(2810) 评论(14) 推荐(6) 编辑
摘要: 在之前章节所完成的练习中,客户端调用WCF服务的一系列操作,但是这些操作的顺序并不重要;因此先调用一个操作然后再调用另外一个操作,均不会对彼此产生影响,因为这些操作是相互独立地。但在实际应用中,服务的操作可能需按照一定的顺序调用。比如,如果你在服务中实现了购物车功能,那么在没有将任何商品放进购物车之前,就执行结算和支付操作显然是没有意义的。按照一定的顺序调用操作会使你考虑在如何两次操作之间维持会话状态信息,那么该如何将这些会话的状态信息存储到持久化设备上。这些就是本章将介绍的内容。 阅读全文
posted @ 2011-06-15 10:43 On the road.... 阅读(2564) 评论(2) 推荐(1) 编辑
摘要: 在第一章WCF简介中,你已经了解SOA的基本原则--服务之间共享数据架构和协定,而并非类或者类型。当你定义服务时,你通过定义服务协定以指定操作。服务协定描述该服务的操作、操作所使用的参数类型及其操作返回值的类型。WCF服务对外公布服务协定的定义,服务开发人员使用这些定义去构建相应的客户端。开发人员可以通过Visual Sutdio自带的添加服务向导或者svcutil实用工具为根据服务的WSDL描述生成一个客户端代理类,客户端使用该代理类与进行服务通信。 服务协定仅仅是整个故事的一部分。服务协定中的操作可以使用参数并且操作可以有返回值。客户端程序必须提供服务所要求格式的数据。在.NET Framwork中,主要数据类型都有预先定义的格式;而类,结构,枚举等类型则拥有比较复杂的格式;这些复杂格式的数据类型要求客户端程序在想服务发送消息时,先将这些复杂数据打包然后才发送。同样地,服务端也需要格式化这些复杂数据,然后才发送给客户端。你可以使用数据协定来封装这些复杂格式的数据类型;服务所使用的复杂数据类型都应有一个对应的数据协定。服务将数据协定和服务协定一起对外公布,那么这些复杂格式的数 阅读全文
posted @ 2011-06-02 16:36 On the road.... 阅读(2447) 评论(4) 推荐(3) 编辑
摘要: 实现企业内部的WCF服务和客户端程序的安全需要相当的力气,但是WCF提供了绑定和行为来简化保护通信。使用.NET Framework4.0提供的认证和授权,可以确保服务和客户端消息传输的保密性,而且还确保只有经过授权的用户才能对服务提交请求。企业内部的网络环境由于内在的保密性,对比因特网其相对比较稳定;虽然也有黑客入侵,但这也只是偶尔的现象。只要系统管理员和网络管理员维护好企业基础架构的安全,那么你就基本可以信任客户端程序和服务。消息加密、用户验证、用户授权,它们都能比较容易地在企业内部部署。 但是,当客户端程序和WCF服务跨越公共网络(比如因特网)时,你便不能再假定客户端程序,WCF服务,及两者之间的通信是可以信任的。比如,客户端程序如何验证它所发送消息的服务端是否是真实的服务端,而不是替代了真实服务的冒牌服务端;或者在消息被传送至真实服务之前冒牌服务端是否破译并记录消息;亦或服务如何区分运行客户端的用户是否就是他所声称的身份;以及服务如何分辨请求是否来自授权的客户端而不是来自一个由黑客伪装的客户端。 因特网是一个充满潜在危险的环境,因此你必须高度怀疑所有通过因特网传输的 阅读全文
posted @ 2011-05-30 22:35 On the road.... 阅读(3387) 评论(10) 推荐(7) 编辑
摘要: 安全是任何系统至关重要的一个方面,尤其当该系统由分布式的程序和服务组成;安全还是一个非常广泛的话题。因为这些原因,你应该考虑如何在不同的场景下实现系统的安全。这些关于安全的内容将通过三章内容进行一一介绍。在本章,我们把注意力集中在企业内部WCF服务的安全管理。在此场景下,运行WCF服务的服务端和客户端之间已经存在必要的信任关系;通过客户端访问该服务的用户都来自同一个安全域。WCF服务可以直接访问该域内的信息,并直接使用这些信息验证用户。在第五章"保护因特网上的WCF服务",你将看到客户端程序和服务分布在不同的安全域内,并且由不安全的网络分隔开。在这种情况下,不要试图也不可能直接验证用户。在第十七章"使用Windows CardSpace管理身份",你将看到在混合环境下如何实现一个分身元系统以帮助验证用户。 阅读全文
posted @ 2011-05-24 10:03 On the road.... 阅读(4224) 评论(11) 推荐(9) 编辑
摘要: 捕获和处理异常是任何专业的应用程序的一个重要组成部分。在一个复杂的桌面程序上,许多场景都能产生一个异常,从程序错误、意外的事件、不完整的用户输入,到运行该程序一个或多个的硬件故障。在分布式环境中,异常的发生场景就更多了。因为网络的状态,在某些情况下,无论应用程序开发人员、还是网络管理员都无法控制网络的发挥功效或者维持其处于正常的工作状态。如果把应用程序访问第三方组件考虑在内,那么还应考虑你的分布式程序能否可靠地工作. 本章将介绍如何处理客户端和服务端的异常。你将学习到如何在服务端指定异常,以使服务能引发该异常,并将该异常的信息推送至客户端。你还将了解到服务可能所处的状态,以及如何确定宿主程序是否从一个状态切换到另一个状态,以及如何使服务从一个失败的状态中恢复。最后,你还将看到如何识别客户端发送给服务端的预料之外的消息。 阅读全文
posted @ 2011-05-18 08:17 On the road.... 阅读(4374) 评论(9) 推荐(5) 编辑
摘要: 本章先描述WCF service的工作原理;然后阐述寄宿WCF服务的各种方式;随后通过创建WPF程序和Windows Service来寄宿WCF服务;最后讲述支持WCF内置的各种绑定以及如何对一个WCF服务实现多重绑定。 在第一章中,我们为你介绍了如何创建一个WCF服务,并将其部署到IIS上,然后通过客户端程序访问该服务。在本章中,我们将关注WCF工作的细节;各种寄宿WCF服务的方式;此外,你还将学习到如何创建和配置宿主程序,其负责处理来自客户端的请求并控制WCF服务的状态;你还将进一步了解到绑定的工作原理及WCF运行时如何使用绑定来实现服务的其他特性。 阅读全文
posted @ 2011-05-16 09:41 On the road.... 阅读(9527) 评论(16) 推荐(17) 编辑
摘要: WCF进阶第一章--WCF简介。介绍了什么是WCF;WCF的目标;使用Visual Studio 2010创建一个WCF服务;部署WF服务到IIS;创建一个客户端访问WCF服务;WCF与SOA基本原则。 阅读全文
posted @ 2011-05-10 01:03 On the road.... 阅读(7794) 评论(20) 推荐(16) 编辑
摘要: WCF4.0 进阶系列--前言部分。介绍了什么是WCF,以及如何做好学习本书的准备 阅读全文
posted @ 2011-05-10 01:00 On the road.... 阅读(2940) 评论(6) 推荐(5) 编辑
摘要: 在jQuery基础上,开发UI注意事项;很多细节的东西,只有你经历过,才了解。 阅读全文
posted @ 2011-05-07 17:24 On the road.... 阅读(872) 评论(2) 推荐(0) 编辑
摘要: onkeypress occurs when a keyboard key is pressed or held downonchange occurs when the content of a field changesOk, let's go further. If you want to validate the character number limitation of one tex... 阅读全文
posted @ 2011-03-18 17:49 On the road.... 阅读(229) 评论(0) 推荐(0) 编辑
摘要: Today, I met one strange problem; when the following T-SQL statement was executed, the desired result was not presented: What happened to the ltrim and rtrim, I copied the value of '105151 ' and then ... 阅读全文
posted @ 2011-03-16 15:00 On the road.... 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 用jQuery实现Bing的图片故事 阅读全文
posted @ 2011-01-19 12:31 On the road.... 阅读(920) 评论(0) 推荐(1) 编辑
摘要: tip collection 阅读全文
posted @ 2010-08-05 12:32 On the road.... 阅读(381) 评论(0) 推荐(0) 编辑