WCF客户端与服务端通信简单入门教程
服务端
1.新建空白解决方案,然后再空白解决方案中新建:WCF服务应用程序。建完后如图:

2.删掉自动生成的IService1.cs和Service.svc并添加WCF服务文件StudentService.svc,VS会自动生成IStudentService.cs 在添加一个Student类,如图:

Student.cs:
/// <summary>
/// DataContract数据约定,保证student类在WCF调用中被序列化
/// DataMember 在被序列化的成员变量中必须加 [DataMember]标签
/// </summary>
[DataContract]
public class Student
{
[DataMember]
public string StudentId { get; set; }
[DataMember]
public string StudentName { get; set; }
}
IStudentService.cs:
/// <summary>
/// ServiceContract:服务约定,代表我们所能操作的接口集合,提 供功能点。
/// OperationContract: 每个对外需要发布的方法都需要加上此标签
/// </summary>
[ServiceContract]
public interface IStudentService
{
[OperationContract]
List<Student> RemoveStudent(string id);
}
StudentService.svc:
public class StudentService : IStudentService
{ public List<Student> RemoveStudent(string id)
{
var students = new List<Student>() {
new Student {StudentId="",StudentName="学生1" },
new Student {StudentId="",StudentName="学生2" }
}; var student = students.Find(m => m.StudentId == id); students.Remove(student); return students;
}
}
到现在为止我们WCF服务端程序建好了,我们把StudentService.svc设为起始页,F5运行一下,会弹出来WCF测试客户端,如图

双击左侧的RemoveStudent(),在右侧输入值然后点击调用,如图:

结果如我们预料的那样,StudentId为1的数据被删掉了。
接下来我们把它部署到IIS上, 在默认文档里添加StudentService.svc,然后浏览,如图:


客户端
1.新建空白解决方案,新建ASP.NET WEB应用程序,名称为WCFClient,添加服务引用,服务引用地址为上图地址中的
http://localhost:88/StudentService.svc?wsdl
,如图:
WCFTest.aspx:
<form id="form1" runat="server">
<div>
<table>
<tr>
<td> <asp:TextBox ID="txtStudentId" runat="server"></asp:TextBox></td>
<td><asp:Button ID="btnSubmint" runat="server" Text="删除" OnClick="btnSubmint_OnClick"/></td>
</tr>
</table> </div>
</form>
WCFTest.aspx.cs:
protected void btnSubmint_OnClick(object sender, EventArgs e)
{
var wcfService = new WCFService.StudentServiceClient(); var str = string.Empty; wcfService.RemoveStudent(this.txtStudentId.Text.Trim())
.ToList()
.ForEach(m =>str += m.StudentId + ":" + m.StudentName); Response.Write(str);
}
运行下,看下效果:

WCF客户端与服务端通信简单入门教程的更多相关文章
- Netty实现客户端和服务端通信简单例子
Netty是建立在NIO基础之上,Netty在NIO之上又提供了更高层次的抽象. 在Netty里面,Accept连接可以使用单独的线程池去处理,读写操作又是另外的线程池来处理. Accept连接和读写 ...
- Netty入门之客户端与服务端通信(二)
Netty入门之客户端与服务端通信(二) 一.简介 在上一篇博文中笔者写了关于Netty入门级的Hello World程序.书接上回,本博文是关于客户端与服务端的通信,感觉也没什么好说的了,直接上代码 ...
- WCF客户端获取服务端异常[自定义异常]
引言 经过不断的摸索,询问/调试,终于学会了关于WCF客户端与服务端之间异常的处理机制,在此来记录自己的成果,用于记录与分享给需要的伙伴们. 首先感谢[.NET技术群]里群主[轩]的大力帮助,如有需要 ...
- Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.
Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: 专业理解: socket是应用层与TCP/IP ...
- Android BLE与终端通信(三)——客户端与服务端通信过程以及实现数据通信
Android BLE与终端通信(三)--客户端与服务端通信过程以及实现数据通信 前面的终究只是小知识点,上不了台面,也只能算是起到一个科普的作用,而同步到实际的开发上去,今天就来延续前两篇实现蓝牙主 ...
- 基于开源SuperSocket实现客户端和服务端通信项目实战
一.课程介绍 本期带给大家分享的是基于SuperSocket的项目实战,阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现打通B/S与C/S网络通讯,如果您对本期的<基于开源Supe ...
- netty-3.客户端与服务端通信
(原) 第三篇,客户端与服务端通信 以下例子逻辑: 如果客户端连上服务端,服务端控制台就显示,XXX个客户端地址连接上线. 第一个客户端连接成功后,客户端控制台不显示信息,再有其它客户端再连接上线,则 ...
- Netty入门——客户端与服务端通信
Netty简介Netty是一个基于JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性.换句话说,Netty是一个NIO框架,使用它可以简单快速 ...
- WCF 客户端与服务端消息传输
WCF很多需要认证信息,保证服务的安全,可以使用消息来实现 WCF 实现消息的方式: WCF中有两个接口: IClientMessageInspector [定义一个消息检查器对象,该对象可以添加到 ...
随机推荐
- 完整的thinphp+phpexcel实现excel报表的输出(有图有效果)
准备工作:1.下载phpexcel1.7.6类包:2.解压至TP框架的ThinkPHP\Vendor目录下,改类包文件夹名为PHPExcel176,目录结构如下图: 编写代码(以一个订单汇 ...
- C# DataTable 转换成JSON数据
原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...
- vim的复制粘贴小结
vim帮助文档里与粘贴板有关的内容如下: vim有12个粘贴板,分别是0.1.2.….9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用 ...
- Ora中select某时间段记录sql语句
要查找某时间段的记录,例如查找2013-11-1到2013-11-30的记录. ' group by user_name, user_id 注意:SQL语句中含有sum累加函数,末尾要加group b ...
- leetcode第38题--Combination Sum
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- 一个web开发框架
一个web开发框架 怎么才能成为一名架构师?需要具备哪些条件? 作为一名码农我迫切希望自己成为一个比较合格的web架构师,昨晚心血来潮小弟花了4个小时的时间整了个简易的web开发框架,由于第一次搭建框 ...
- Android-往来:包Group添加到联系人
long groupId = Constant.createGroupId; ContentValues values = new ContentValues(); for(int i=0,len=C ...
- CSS知识点:font小细节
font是用来设置网页字体属性的关键字,使用频率非常高,大家也比较熟悉.它有两种写法,一种是简写,一种分开写. 简写--font:italic bold 12px/20px arial,sans-se ...
- hudson任务配置说明
hudson任务配置说明 Discard Old Builds:hudson默认保留过去的构建,勾选此选项,则可以设置构建记录的有效期: (帮助:这里控制着您想要在hudson所在的磁盘把构建记录存储 ...
- asp.net请求响应模型原理随记回顾
asp.net请求响应模型原理随记回顾: 根据一崇敬的讲师总结:(会存在些错误,大家可以做参考) 1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文.并通过主sock ...