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调用成功!";}}
}

View Code

可以看到,在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(77777);MessageBox.Show(str);}

View Code

注意:在写事件之前注意引用using WCFClient.WCFservice;

然后我晕运行,搞起如下图所示:

通过以上的例子,我们完成了由A服务器的应用向B服务器中WCF提供的方法的调用。

转载于:https://www.cnblogs.com/inthere/p/7878480.html

WCF 入门调用实例教程相关推荐

  1. Flux --gt; Redux --gt; Redux React 入门 基础实例教程

    本文的目的很简单,介绍Redux相关概念用法 及其在React项目中的基本使用 假设你会一些ES6.会一些React.有看过Redux相关的文章,这篇入门小文应该能帮助你理一下相关的知识 一般来说,推 ...

  2. createjs php通信,快速入门createjs实例教程

    开始用createjs这个框架的时候,发现网上的相关教程还是挺少的,所以写一篇文章,方便日后查看. createjs简介 官网:http://www.createjs.cc/ createjs中包含以 ...

  3. vi(vim)入门简明实例教程---总览全局 快速入门

    正文 1.Starting And Stopping vi   启动和退出vi 我们需要学习的第一件事就是如何启动和退出vi. 启动vim只需要键入 qiaoqiao@ubuntu:~$ vi 即可, ...

  4. 阿里云话费api调用实例教程

    接口地址 http://f.ihuyi.com/phone 1.单号码充值话费 请求(POST 或者GET) 类型 参数名称 参数值描述 参数 action recharge 参数 username ...

  5. php页面get方法实现ajax,入门实例教程

    ajax,入门实例教程 本例针对php页面,做了一个小的demo加深对ajax的理解 1.文档结构: 共有ajax.php 和action.php 2个页面. 2.源码如下: /*ajax.php页面 ...

  6. [转]React 入门实例教程

    React 入门实例教程 作者: 阮一峰 日期: 2015年3月31日 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获 ...

  7. WCF 入门之旅(4): 怎样用客户端调用WCF服务

    WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...

  8. axis2 webservice入门学识(JS,Java,PHP调用实例源码)

    来源:http://www.myexception.cn/web/952419.html axis2 webservice入门知识(JS,Java,PHP调用实例源码) 背景简介 最近接触到一个银行接 ...

  9. wxpython中文教程_wxPython中文教程 简单入门加实例

    wxPython中文教程简单入门加实例 博客分类: Python 2 / Wxpython wxPythonPython编程浏览器脚本 wx.Window 是一个基类,许多构件从它继承.包括 wx.F ...

  10. Phaser 3 入门实例教程

    Phaser是什么? Phaser是一个HTML5游戏框架,目的是为了快速地制作跨浏览器的HTML5游戏. 这个框架,主要发掘了现代浏览器(兼及桌面和移动两类系统)的优点,所以对浏览器的唯一要求是,就 ...

最新文章

  1. Oracle SQL优化
  2. centos7编译安装mysql5.7_在Centos7源码包编译安装MySQL5.7
  3. 深入理解Java:注解(Annotation)基本概念
  4. Springboot-RabbitMq 参数配置详解
  5. python如何确定拐点_多年股市老鸟买卖操作经验——如何在波段操作确定买入点!经典...
  6. .NET Core WebAPI Swagger使用
  7. 美国太空部队加入美国情报系统,以确保太空的安全
  8. 第 二 十 八 天 :监 控 软 件 之 cacti
  9. gcc详解以及静态,动态库的生成 1
  10. 微博认证怎么弄黄v:微博兴趣认证指定领域
  11. 超实用windows软件推荐!新电脑必装哪些软件?
  12. 手把手教你用Python创建SQL数据库~
  13. 计算机二级幻灯片母版奇数页,计算机二级office考试中PPT母版知识考察点有哪些...
  14. git add 之后没有push 怎么找回代码?
  15. 11尺寸长宽 iphone_iPhone11屏幕尺寸
  16. MySQL高级篇——锁的概述与案例应用
  17. 开源库UniTask笔记
  18. 微信小程序 图片等比例缩放(图片自适应屏幕)
  19. 苹果开放降级_苹果降级对手机有什么坏处
  20. 基于Win10单机部署kubernetes应用

热门文章

  1. DotNetNuke(DNN) 中查询所有管理员的SQL语句
  2. 使用构造方法注入和setter注入的配置文件
  3. 使用Python删除Windows中只读文件
  4. 递归打印目录层次(java版)
  5. [bzoj] 2694 Lcm || 莫比乌斯反演
  6. asp.net生成随机数或字母验证码代码
  7. flash xml+textArea组件+CSS
  8. Android studio 无法启动安卓模拟器
  9. 02在Windows Server 2008R2上面将客户端加入域
  10. JAVA爬虫Nutch、WebCollector的正则约束