WCF 入门调用实例教程
WCF的相关概念信息就不在此赘述了,网上一搜一大把。
现在让我们动手搭建我们的第一个wcf程序吧,具体流程如下:
1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。
2、建立完成后如下图所示:
2、删除系统生成的两个文件IService1.cs与Service1.svc(或者自己重命名,在系统生成的基础文件中进行编码,此处感觉重命名麻烦,于是选择删除--新建)
3、添加自定义的WCF【服务文件】Test.svc
5、此时vs2010会自动生成WCF接口文件ITest.cs
6、我们在ITest中定义WCF方法TransferTest,在Test.svc.cs对该接口的方法进行实现,代码如下:
namespace WCFServiceDemo_gf
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“ITest”。
[ServiceContract]
public interface ITest
{
[OperationContract]
string TransferTest(int num);
}
}
namespace WCFServiceDemo
{
public class Test : ITest
{
public string TransferTest(int num)
{
return "第" + num + "次WCF调用成功!";
}
}
}
可以看到,在WCF中的接口与普通接口的区别只在于两个上下文,其他的和我们正常学习的接口一样。定义这个上下文要添加System.ServiceModel的引用。[ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。[OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。
7、此时我们的第一个WCF服务程序就建立好了,将Test.svc“设为起始页”,然后F5运行一下试试,如下图所示,VS2010自动调用了WCF的客户端测试工具以便我们测试程序:
8、我们双击上图中的 TransferTest() 方法,出现如下图:
在请求窗口中的值中输入参数“99”,然后点击“调用”,在响应窗口中会出现返回值“"第99次WCF调用成功!",说明测试成功,点击下面的XML也可以看到XML的数据传输。
9、我们设计测试的场景是在生产中经常应用的场景,把WCF程序寄宿在IIS之上。假设场景如下:【A服务器】和【B服务器】。我们把我们刚刚建立的WCF程序“部署”在【B服务器】上,我们的目标是在【A服务器】的应用程序来访问【B服务器】的WCF程序,实现服务器端的应用程序通讯。
首先我们将WCF应用程序发布一下,然后部署在B服务器的IIS之上,
详细部署步骤如下参考不做太多解释:
http://blog.csdn.net/jiankunking/article/details/44118911
效果如图下面两张展示即可成功
10、我们在客户端【A服务器】]创建服务的引用。
我们这里以WinForm应用程序为例,建立地物理地址为【B服务器】的ip
新建解决方案,并且创建WinForm应用程序的项目。命名为:WCFClient,如下图所示:
接下来我们添加在之前部署的服务的引用。如下图所示:
然后确定。
此时我们完成了对服务的引用。我们再次查看解决方案,里面多了Service References的文件夹,通过资源管理器打开后里面多了些文件,这些文件用于客户端向服务端的调用。
在Form窗体上,添加一个button,并添加button1_Click事件,在button1_Click具体的调用方法如下:
private void button1_Click(object sender, EventArgs e)
{
WCFservice.TestClient tc = new WCFservice.TestClient();
string str = tc.TransferTest();
MessageBox.Show(str);
}
注意:在写事件之前注意引用using WCFClient.WCFservice;
然后我晕运行,搞起如下图所示:
通过以上的例子,我们完成了由A服务器的应用向B服务器中WCF提供的方法的调用。
WCF 入门调用实例教程的更多相关文章
- MVC5与EF6 Code First 第一个入门完整实例教程
mvc如今火的不行,我今天就来介绍一个MVC5与EF6开发的实际的入门实例,因为EF6默认是Code First的,所以我今天也就用EF6 的Code First来做一个简单的实例,为了让实例显得简单 ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- WCF入门教程(五)配置文件
WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...
- WCF入门教程(一)简介
WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foundation), 是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NE ...
- 学习WCF入门的第一个实例
一.概述 WCF说白了就是一个基于终结点的通信手段!就是Service端提供一定的功能实现,然后暴露出一个或多个终结点,Client端调用Service端的功能(可以理解为调用一个函数),那么Clie ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- WCF入门教程(三)定义服务协定--属性标签
WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...
- WCF入门教程(二)如何创建WCF服务
WCF入门教程(二)从零做起-创建WCF服务 通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) ...
随机推荐
- 基于redis(订阅发布)实现python和java进程间通信
主要结构为: python进程发布消息,java进程订阅消息. 依赖环境: python: pip install redis java: jedis 1. python端: PubSub.py ...
- solr java代码
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- Sublime Text 3 中实现编译C语言程序
这个是真坑,感觉用devc++写c程序特别的不爽,所以就用了sublime,但是,编译的时候又有不少问题, 下面就把我踩的坑记录下来 tools>Build System>New Buil ...
- .netCore+Vue 搭建的简捷开发框架 (2)--仓储层实现和EFCore 的使用
书接上文,继续搭建我们基于.netCore 的开发框架.首先是我们的项目分层结构. 这个分层结构,是参考张老师的分层结构,但是实际项目中,我没有去实现仓储模型.因为我使用的是EFCore ,最近也一直 ...
- Unity子弹生成系统
子弹系统和粒子系统比较类似,为了创建和五花八门的子弹,例如追踪,连续继承,散弹等,需要一个拥有众多参数的子弹生成器,这里叫它Shooter好了. Shooter负责把玩各类子弹造型和参数,创建出子弹, ...
- React + TypeScript 默认 Props 的处理
React 中的默认 Props 通过组件的 defaultProps 属性可为其 Props 指定默认值. 以下示例来自 React 官方文档 - Default Prop Values: clas ...
- 深入解析 Kubebuilder:让编写 CRD 变得更简单
作者 | 刘洋(炎寻) 阿里云高级开发工程师 导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubern ...
- numpy库使用总结
numpy study 0x01:n维数组对象ndaarray 存放同类型元素的多维数组 0x02:numpy数据类型 numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 ...
- (1)安装elastic6.1.3及插件kibana,x-pack,essql,head,bigdesk,cerebro,ik
1.安装环境及程序版本 操作系统: centos6.7 jdk: 1.8.0_102 elastic: 1.6.3 kibana: 1.6.3 x-pack: 1.6.3 es-sql: 1.6.3 ...
- 接口测试时数据格式是json,如何将响应内容转换为字典解析
import requests url = 'http://127.0.0.1:5050/index' def apiTestPost(url): datas = { 'a':'cisco3', 'b ...