一个简单的WCF服务

以订票为例简单应用wcf程序,需要的朋友可以参考下

WCF实例(带步骤)

复制代码代码如下:

<xmlnamespace prefix ="o" ns
="urn:schemas-microsoft-com:office:office"
/> 

本篇转自百度文档,自己试过,确实可以用。 

以订票为例简单应用wcf 

新建一个wcf服务应用程序



在IService1.cs定义服务契约

复制代码代码如下:

namespace
WcfDemo 

// 注意: 如果更改此处的接口名称 "IService1",也必须更新 Web.config 中对
"IService1" 的引用。
[ServiceContract] // 服务合同 即提供服务的接口或类 
public
interface IService1 

[OperationContract] 
/*
增加车票的方法*/ 
void AddTicket(int
count); 
[OperationContract] 
/*购买车票的方法*/ 
int
BuyTickets(int Num); 
[OperationContract] //服务契约
即提供服务的实现方法 
/*查询车票的方法*/ 
int GetRemainingNum(); 
// 任务:
在此处添加服务操作 

//
使用下面示例中说明的数据约定将复合类型添加到服务操作。 
[DataContract] //数据契约 
public class
Ticket 

bool boolCount = true;//判断是否还有车票 
int howmany
= 10;//还有多少车票 
[DataMember] 
/*判断是否还有票*/ 
public bool
BoolCalue 

get { return boolCount; } 
set

if (HowMany > 0) 

boolCount =
false; 

else 

boolCount =
true; 



[DataMember] 
/*返回票数*/ 
public
int HowMany 

get { return howmany; } 
set { howmany =
value;} 




在Service1.svc中实现契约服务

复制代码代码如下:

namespace
WcfDemo 

// 注意: 如果更改此处的类名“Service1”,也必须更新 Web.config 和关联的
.svc 文件中对“Service1”的引用。 
public class Service1 :
IService1 

Ticket T=new
Ticket(); 
/*实现添加票数的方法*/ 
public void AddTicket(int
count) 

T.HowMany=T.HowMany+count; 

/*实现返回票数的方法*/ 
public
int GetRemainingNum() 

return
T.HowMany; 

/*实现购买车票的方法*/ 
public int BuyTickets(int
Num) 

if (T.BoolCalue) 

T.HowMany =
T.HowMany - Num; 
return
1; 

else 

return
0; 





添加宿主程序用于监测服务 
添加WinForm项目加入解决方案 
界面如下图:



界面上两个按钮: 
启动服务按钮:
用于启动wcf服务 
停止服务按钮: 用于停止wcf服务 
Label:
用于显示服务相关信息 
后台代码为: 
应用命名空间 using
System.ServiceModel; 
添加引用 wcf服务生成的dll文件

复制代码代码如下:

public partial class Form1 :
Form 

public
Form1() 

InitializeComponent(); 

ServiceHost
host = null;//定义 ServiceHost 
private void button1_Click(object sender,
EventArgs e) 

host = new
ServiceHost(typeof(WcfDemo.Service1));//WcfDemo.Service1
为引用的dll中的服务 
host.Open();//启动服务 
this.label1.Text =
"服务已启动"; 


private void button2_Click(object sender,
EventArgs e) 

if (host.State !=
CommunicationState.Closed)//判断服务是否关闭 

host.Close();//关闭服务 

this.label1.Text
= "服务已关闭"; 



接下来配置app.config

复制代码代码如下:

<?xml version="1.0" encoding="utf-8"
?> 
<configuration> 
<system.serviceModel> 
<services><!--添加服务--> 
<service
name="WcfDemo.Service1"
behaviorConfiguration="CalculatorServiceBehavior"> 
<!--name
必须与代码中的host实例初始化的服务一样 
behaviorConfiguration 行为配置
--> 
<host> 
<baseAddresses> 
<!--添加调用服务地址--> 
<add
baseAddress="http://localhost:8000/"/> 
</baseAddresses> 

</host> 
<!--添加契约接口
contract="WcfDemo.IService1" WcfDemo.IService1为契约接口 binding="wsHttpBinding"
wsHttpBinding为通过Http调用--> 
<endpoint address=""
binding="wsHttpBinding"
contract="WcfDemo.IService1"></endpoint> 
</service> 

</services> 
<!--定义CalculatorServiceBehavior的行为--> 
<behaviors> 
<serviceBehaviors> 
<behavior
name="CalculatorServiceBehavior"> 
<serviceMetadata
httpGetEnabled="true"/> 
<serviceDebug
includeExceptionDetailInFaults="false"/> 

</behavior> 

</serviceBehaviors> 

</behaviors> 
</system.serviceModel> 
</configuration> 

程序运行结果:


在服务启动后可通过appConfig中baseAddress节点中的baseAddress地址查看Wcf服务

到这服务以及服务主机都已经创建好了下面该创建测试客户机了!
新建个WinForm程序做为我们的测试客户机
界面两个按钮一个label

购买车票:调用wcf服务的BuyTickets()方法
查询车票:调用wcf服务的GetRemainingNum()方法
label用于显示运行信息
为项目添加服务引用 地址输入服务主机appconfig中baseAddress地址点击前往(添加服务引用时一点是在服务启动状态下的)

后台代码为:

复制代码代码如下:

public partial class Form2 :
Form 

public
Form2() 

InitializeComponent(); 

ServiceReference1.Service1Client
TClient = new
WinFormsClient.ServiceReference1.Service1Client(); 
//声明客户端调用 
private
void button1_Click(object sender, EventArgs e) 

int i =
TClient.BuyTickets(2); //调用WCF中的方法 
if (i ==
1) 

this.label1.Text =
"购买成功"; 

this.label1.Text += "剩余车票还有" +
TClient.GetRemainingNum().ToString(); 

private void
button2_Click(object sender, EventArgs e) 

this.label1.Text =
""; 
this.label1.Text =
TClient.GetRemainingNum().ToString();//调用WCF中的方法 



点击购买车票时调用wcf的BuyTicket()方法并返回剩余车票的信息 
点击查看车票时调用wcf的GetRemainingNum()得到剩余车票信息 
运行结果如下: 
点击购买车票:

点击查询票数时:

一个简单的WCF服务,布布扣,bubuko.com

时间: 2024-10-12 22:52:35

一个简单的WCF服务的相关文章

一个简单的WCF服务的编写和调用

1.如图所示:这个简单的WCF Demo中主要包括3个文件:1个接口(定义了该服务提供的方法).1个实体类 .一个.Svc文件(方法的实现过程) 2.编写好服务的代码之后,编辑WCF配置文件,如果所示: 3.在客户端的终结点和绑定中写好配置信息,保存. 4.按F5运行,会调用WCF测试客户端.如果所编写的服务和配置都正常,客户端的界面是这样: 使用该工具可以测试接口中的方法返回的数据,至此一个简单的WCF服务程序就写好了.接下来就是把WCF服务发布到IIS中 5.右键解决方案,点击发布,将WCF

WCF服务二:创建一个简单的WCF服务程序

在本例中,我们将实现一个简单的计算服务,提供基本的加.减.乘.除运算,通过客户端和服务端运行在同一台机器上的不同进程实现. 一.新建WCF服务 1.新建一个空白解决方案,解决方案名称为"WCFSolution". 2.解决方案右键->添加->类库项目,类库名称为CalculateWcfService. 3.创建服务契约 WCF采用基于契约的交互方式实现了服务的自制.服务契约:是相关操作的集合.契约就是双方或多方就某个关注点达成的一种共识,是一方向另一方的一种承诺.签署了某个

WCF--建立简单的WCF服务

在VS2010里建立一个最简单的WCF服务,基本流程如下: 一:新建WCF应用 首先,新建一个WCF服务的应用,如下图所示 建立完成之后,VS将自动生成一个最简单的WCF工程,在这个应用中,包含了最基本Contract.Service. 工程如下: 不需要编辑任何文件,直接编译生成,得到一个WcfService1.dll文件 二.WCF应用中的契约(Contract) 在生成的WCF工程中,IService1.cs中为Contract(本例中契约和服务放在同一个工程下了,实际上也可以分为两个工程

第一节 构建一个简单的WCF应用

先吐个槽,到目前为止接触的东西也就是些ado.net.select.delete.update.create.临时表的批量操作.及稍微复杂点的几个表之间查询再带几个excel导入导出 然后会点前端的js.jquery等,所以在公司目前薪水并不高(能在广州生活下去吧,什么买车买房的想都别想),拿自己身边的同志一比较感觉心里不怎么平衡,凡事还是得靠自己 自强才是硬道理,就吐到这里吧!开始我的wcf之旅吧 本人理工科类型的文笔很烂 希望各位大神不要喷小弟哦(参照的书本:WCF全面解析) 咱们还是从小学

重温WCF之构建一个简单的WCF(一)(2)通过Windows Service寄宿服务和WCF中实现操作重载

参考地址:http://www.cnblogs.com/zhili/p/4039111.html 一.如何在Windows Services中寄宿WCF服务 第一步:创建Windows 服务项目,具体添加步骤为右键解决方案->添加->新建项目,在已安装模板中选择Windows 服务模板,具体如下图示所示: 第二步:添加Windows服务之后,修改对应的Service1.cs文件 using System; using System.Collections.Generic; using Syst

创建一个简单的WCF程序

WCF的服务不能孤立地存在,需要寄宿于一个运行着的进程中,我们把承载WCF服务的进程称为宿主,为服务指定宿主的过程称为服务寄宿(Service Hosting).在我们的计算服务应用中,采用了两种服务寄宿方式:通过自我寄宿(Self-Hosting)的方式创建一个控制台应用作为服务的宿主(寄宿进程为Hosting.exe):通过IIS寄宿方式将服务寄宿于IIS中(寄宿进程为IIS的工作进行W3wp.exe).客户端通过另一个控制台应用模拟(进程为Client.exe).接下来,我们就一步一步来构

WCF学习——构建一个简单的WCF应用(一)

本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些准备开始学习WCF的初学者提供一些帮助. 在这个例子中,我们将实现一个简单的计算器和传统的分布式通信框架一样,WCF本质上提供一个跨进程.跨机器.跨网络的服务调用.在本例中,客户端和WCF应用服务通过运行在同一台机器上的不同进程模拟. 步骤一.构建整个解决方案 1.创建一个空白的解决方案 2.添加四个项目和引用及关系  Service.Interface  用于定义服务契约的类库项目,引用WCF核心程序集Sys

WCF学习——构建一个简单的WCF应用(二)

我们接着上一篇文章进行讲解 http://www.cnblogs.com/songjianhui/p/7060698.html 一:客户端通过添加引用调用服务 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端程序进行服务的调用. 1)先运行服务寄宿程序(Hosting.exe) 2) 在Visual Studio 2013的"解决方案资源管理器"中,把Cl

一个简单的通讯服务框架(大家发表意见一起研究)JAVA版本

最近研究下java语言,根据一般使用的情况,写了个连接通讯服务的框架: 框架结构 C-Manager-S; 把所有通讯内容抽取成三个方法接口:GetData,SetData,带返还的Get; 所有数据都处理为byte[];客户端与服务端和管理器以及服务端有多重处理模式 管理信息: 1.不需要中心管理器:服务端启动时向客户端广播自己绑定的地址:接收数据:客户端使用时广播一次请求,向所有服务端获取服务信息: 2.管理中心:客户端向管理器请求服务信息:服务端向管理器注册地址:根据需要,可以把客户端传递