WCF分分钟入门

近来学习wcf,总结了一下入门的经验,小白的入门篇,也方便以后复习,省的去查质料。

第一步:创建wcf程序,程序初始化有一个接口和一个实现类写个简单的返回方法就可以了;

第二步:创建一个宿主,也就是服务,写好打开服务的代码和配置文件;

第三步:创建一个客户端服务,运行宿主,打开服务后在客户端添加服务引用;

下面的代码是建立在配置文件的基础上,下面也给出了配置的内容。

具体流程如下:

WCF程序代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Runtime.Serialization;
 5 using System.ServiceModel;
 6 using System.Text;
 7
 8 namespace CommunicationsService
 9 {
10     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“Service1”。
11     public class Service1 : IService1
12     {
13         public string GetData(string value)
14         {
15             return string.Format("You entered: {0}", value);
16         }
17     }
18 }

服务宿主代码

 1 using CommunicationsService;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.ComponentModel;
 5 using System.Data;
 6 using System.Drawing;
 7 using System.Linq;
 8 using System.ServiceModel;
 9 using System.ServiceModel.Description;
10 using System.Text;
11 using System.Threading.Tasks;
12 using System.Windows.Forms;
13
14 namespace ServerUI
15 {
16     public partial class forServer : Form
17     {
18         public forServer()
19         {
20             InitializeComponent();
21         }
22         ServiceHost host = null;
23         private void forServer_Load(object sender, EventArgs e)
24         {
25             host = new ServiceHost(typeof(Service1));
26             host.Opened += delegate//打开服务时触发事件
27             {
28                 rtbMessage.Text = "Service已经启动服务!";
29             };
30
31             host.Open();//打开服务
32         }
33
34         private void forServer_FormClosing(object sender, FormClosingEventArgs e)
35         {
36             host.Close();
37         }
38     }
39 }

 1 <system.serviceModel>
 2     <services>
 3       <service name="CommunicationsService.Service1">
 4         <endpoint address="http://172.16.140.207:8080/Service1" binding="wsHttpBinding"
 5           bindingConfiguration="" contract="CommunicationsService.IService1">
 6           <headers>
 7             <sn xmlns="http://www.artech.com/">
 8               {DDA095DA-93CA-49EF-BE01-EF01-EF5B471779FD0}
 9             </sn>
10           </headers>
11         </endpoint>
12         <host>
13           <baseAddresses>
14             <add baseAddress="http://172.16.140.207:8080/" />
15           </baseAddresses>
16         </host>
17       </service>
18     </services>
19     <behaviors>
20       <serviceBehaviors>
21         <behavior name="">
22           <!--服务请求地址配置-->
23           <serviceMetadata httpGetEnabled="true" httpGetUrl="http://172.16.140.207:8080/IService1/metadata"/>
24           <serviceDebug includeExceptionDetailInFaults="false" />
25         </behavior>
26       </serviceBehaviors>
27     </behaviors>
28   </system.serviceModel>

客户端代码

1 private void forClient_Load(object sender, EventArgs e)
2         {
3             ChannelFactory<IService1> channelFactory = new ChannelFactory<IService1>("ClientPoints");
4             IService1 proxy = channelFactory.CreateChannel();
5             rtbMessage.Text = proxy.GetData("hello");
6         }

 1 <system.serviceModel>
 2     <bindings>
 3       <wsHttpBinding>
 4         <binding name="WSHttpBinding_IService1" />
 5       </wsHttpBinding>
 6     </bindings>
 7     <client>
 8       <endpoint address="http://172.16.140.207:8080/Service1" binding="wsHttpBinding"
 9         bindingConfiguration="" contract="CommunicationsService.IService1"
10         name="ClientPoints" kind="" endpointConfiguration="">
11         <identity>
12           <dns value="localhost" />
13           <certificateReference storeName="My" storeLocation="LocalMachine"
14             x509FindType="FindBySubjectDistinguishedName" />
15         </identity>
16       </endpoint>
17       <endpoint address="http://172.16.140.207:8080/Service1" binding="wsHttpBinding"
18         bindingConfiguration="WSHttpBinding_IService1" contract="ServiceReference1.IService1"
19         name="WSHttpBinding_IService1">
20         <identity>
21           <userPrincipalName value="MyPC\LiuZhen" />
22         </identity>
23       </endpoint>
24     </client>
25   </system.serviceModel>

希望每天的自己都比昨天的自己强。

WCF分分钟入门

时间: 2024-10-01 06:55:48

WCF分分钟入门的相关文章

C# WCF简单入门图文教程(VS2010版)

C# WCF简单入门图文教程(VS2010版) 作者:丶一二丶 字体:[增加 减小] 类型:转载 时间:2016-03-17我要评论 这篇文章主要介绍了WCF简单入门图文教程,版本是VS2010版,帮助大家轻松学习了解DataContract.ServiceContract等特性,感兴趣的小伙伴们可以参考一下 在这个例子中我们将使用VS2010创建一个WCF服务,其中会了解[DataContract][ServiceContract]等特性. 内置的WCFSVCHost,并使用“WCF测试客户端

C#面向服务编程技术WCF从入门到实战演练

一.WCF课程介绍 1.1.Web Service会被WCF取代吗? 对于这个问题阿笨的回答是:两者在功能特性上却是有新旧之分,但是对于特定的系统,适合自己的就是最好的.不能哪一个技术框架和行业标准作比较,任何对于二者的比较都是错误的,因为两者根不不在同一个范畴里.就好比不能拿个汽车和交通法规比较一样,这是个误区. 阿笨的宗旨就是学完此<C#面向服务编程技术WCF从入门到实战演练>课程,让您从零基础上手后直接将学习的成果运用到实际项目中去.阿笨本次分享的WCF技术是完全来源于切身实际项目中,如

WCF的入门理解

一.什么是WCF WCF是微软弄的一组数据通信的开发接口,即windows通讯接口.(我个人理解为web service的升级版) WCF的最终目的是通过进程或者不同的系统,通过本地网络或者通过Internet(外网)收发客户端和服务端之间的消息. 二.WCF使用所需要注意的     因为是WCF通讯接口而且目的是收发客户端与服务端之间的消息,那么就需要有服务端代码和客户端代码. 服务端: 在服务端可以看到有2个文件一个是Service1.svc这个是放你的详细代码的地方,一个是IService

C# WCF服务入门

之前在公司用的服务端是wcf写的,但是没有深入研究,最近找工作,面试的时候好多人看到这个总提问,这里做个复习 就用微软官方上的例子,搭一个简单的wcf服务,分6步 1 定义服务协定也就是契约,其实就是定义一个服务接口,这玩意后边是公开客户端用的,然后也告诉后边承载程序应该如何加载服务 主要涉及两个特性:一个是ServiceContract(接口的特性,定义这个是服务契约,里边又一些设置参数可以设置一下),OperationContract设置接口的方法的,如果不设置,方法就不会呗公开 这里是直接

WCF 程序入门

WCF是微软公司推出的符合SOA思想的分布式应用程序技术框架和编程模型,是建立在消息通信这一概念基础上运行的一个运行时服务系统. WCF编程模型的目标是实现以下两个实体之间的通信:WCF服务端和WCF客户端.该编程模型封装在.NET框架的System.SericeModel命名空间中.  利用WCF,开发人员不再根据不同的需求分别选择不同的模型,而是只用一种模型,就可以用统一的格式和用法编写各种网络应用程序,从而构建安全的,可靠的,跨平台(包括Windows平台和非Windows平台)的分布式解

WCF 快速入门

定义服务契约 构建HelloWCF应用的第一步是创建服务契约.契约式是表示消息应用外形的主要方式.对于外形,是指服务暴露的操作,使用的消息 schema和每个操作实现的消息交换模式(MEP).总之,契约定义了我们消息应用生成和使用的东西.大多数契约是带有WCF API定义的属性标记的类型定义. 在下面的例子里,服务契约是一个带有System.ServiceModel.ServiceContractAttribute 和System.ServiceModel.OperationContractAt

WCF的入门教程dome(一)

一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NET Framework 3.0 开始引入. WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息. WCF合并了Web服务..net Remoting.消息队列和Enterprise Services的功能并集成在Visual Studio中. WCF

WCF技术我们应该如何以正确的方式去学习掌握

一.WCF技术我该如何学习? 阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术.由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程<C#面向服务编程技术WCF从入门到实战演练>开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么.要不然很难跟上阿笨的课程节奏.虽然本次课程叫WCF技术从入门到实战,但是本次课程的重点还是侧重实战环节

不写画面的网页程序设计,Web API、Web Service、WCF Service

客户有一个系统,经常要连上我方,查询数据 以前的作法是给对方一个账号,让他可以连上我们的DB来查询. 所以,早期的同仁,真的给他们DB链接字符串 客户的Windows程序.网站就真的靠这么危险的方式,连上我们公司的DB. 但怎么想都觉得危险,而且...... 如果对方SQL指令乱下,把效能搞得更烂,岂不是惨兮兮? 如果对方不小心,配置文件被偷走,看到我方DB Connection String怎么办? 几年前的 Internet还没有那么大的带宽,所以还得种种限制,避免他们一次查询太多数据 我接