摘要:
诸如C++和C#等编程语言都支持方法重载,但是,基于WSDL的操作不支持操作重载,如果在WCF中定义重载函数,在启动服务时就会抛出异常InvalidOperationException,异常信息如下:“同一个协定中不能存在两个名称相同的操作,类型为 ServiceContractSample.IServiceContracOverload 的方法 Add 和 Add 违反了此规则。可以通过更改方法名称或使用 OperationContractAttribute 的 Name 属性更改其中一个操作的名称。”
但是WCF可以手动启用操作符重载,实现的方式就是在OperationContract特性的Name特性,为操作指定别名。代码如下:
阅读全文
摘要:
一个Binding由一个有序的binding元素栈所组成,其中的每一个元素都指定了连接到ServiceEndpoint的一个方面。在这个栈中的最底两层都是必须要有的。最底下的一层是传输binding元素,在它之上是用于指定编码规范的binding元素。一个Binding中的元素可以分为三类:协议、传输与编码, 它们分别可以指定如下信息:协议栈元素指定诸如安全性、可靠性、上下文流设置(context... 阅读全文
摘要:
根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式 应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相 关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。 阅读全文