WCF序列学习一:WCF基础知识
WCF(Windows Communication Foundation)是基于Windows平台下开发和部署服务的软件开发包。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。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,首先需要了解WCF的ABC概念,A指Address,即服务地址;B指Binding,即通讯方式,C指Contract,即服务契约,也就是客户端和服务端都必须遵守的接口。而ABC组合起来代表的意思就是 (ABC)终结点:描述了一个服务的地址、绑定类型(是http还是tcp等)、服务契约(服务约定接口)。
创建wcf服务分为几个步骤:
1.创建wcf服务:

2.创建服务契约:
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract] //标志当前接口为服务契约
public interface IService1
{
[OperationContract]//标志当前方法为操作契约
Color GetDatas(int value);
}
[DataContract]
public enum Color
{
[EnumMember]
Red = 0,
[EnumMember]
Orange = 1
}
3.实现服务契约:
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
public class Service1 : IService1
{
Color GetDatas(int value)
{
return string.Format("You entered: {0},Now DateTime:{1}", value, DateTime.Now.ToString());
}
}
4.客户端服务引用:

5.客户端调用:
using (ChannelFactory<ServiceRef.IService1> channelFactory = new ChannelFactory<ServiceRef.IService1>("BasicHttpBinding_IService1"))
{
Response.Write("<br/>------------endpointConfigurationName is :" + channelFactory.Endpoint.Name);
Response.Write("<br/>------------endpoint Address is :" + channelFactory.Endpoint.Address);
ServiceRef.IService1 calculator = channelFactory.CreateChannel();
Response.Write("<br/>" + calculator.GetData(DateTime.Today.Year));
ServiceRef.CompositeType compositeType = calculator.GetDataUsingDataContract(new ServiceRef.CompositeType() { BoolValue = true, StringValue = "This Is Test," + DateTime.Now.ToString() });
Response.Write("<br/>" + compositeType.StringValue);
}
BasicHttpBinding_IService1 为AppConfig的binding节点BasicHttpBinding_IService1
wcf支持两种绑定 BasicHttpBinding和NetTcpBinding绑定

浙公网安备 33010602011771号