WCF基础教程之开篇:创建、测试和调用WCF
一转眼,又半个月没有更新博客了。说实话,最近确实是有点忙。不过即使再忙忙,也要抽空来学习一些东西。最近用WCF比较多,就来跟大家分享一下关于WCF的知识吧!为了让大家都能看懂,照顾一些没有学过WCF的原有,就从最基础的东西写起,希望大家可以体谅。
打开VS2013,新建Silverlight项目,名字自己随便起,并创建Web站点,创建完项目后,我们在Web项目中添加一个WCF服务,名字输入UserService,为了简单起见,选择启用了Silverlight的WCF服务,如图:

这样创建出来的WCF服务会自动在webconfig中生成配置信息,关于WCF的配置也不是几句话能说清楚的,到后面有时间再写几篇博客来说一下WCF吧。然后,我们修改Dowork方法,如图:

然后,我们在UserService.cs上面点击鼠标右键,在浏览器中预览,如果没有错误的话,就会出现如下内容:

到这里,一个WCF服务就建好了,下面来测试一下我们的WCF是否能正常工作,这里为大家推荐一款工具,WCFStorm,我们打开WCFStorm,如图:

我们复制网页地址栏的地址,粘贴到URL栏中,然后点击右边的绿色箭头按钮,然后,我们会看到软件解析WCF服务,显示WCF中的方法,如图:

然后我们选择一个方法,就会在右边的窗口中看到具体的参数和返回值,如图:

这里没有参数,我们之间点击执行,会看到最右边的到了执行结果,如图:

我们看到了,返回的结果为string类型,内容为Hello,world。
上面我们创建了一个WCF服务,并用WCFStorm工具进行了测试。下面我们在SilverLight中进行调用,这里没做过Silverlight没关系,你会WPF自然就会Silverlight了,其实SilverLight就相当于跑在浏览器中的WPF。这里我们在SilverLight项目中,引用上面点击鼠标右键,添加服务应用,如图:

点击发现按钮,就会出现我们刚刚的WCF服务地址,然后修改命名空间为UserServiceReference,点击确定即可。下面我们在MainPage.cs中添加代码,调用WCF方法,代码如下:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
GetData();
} public void GetData()
{
UserServiceReference.UserServiceClient client = new UserServiceReference.UserServiceClient();
client.DoWorkCompleted += client_DoWorkCompleted;
client.DoWorkAsync();
} void client_DoWorkCompleted(object sender, UserServiceReference.DoWorkCompletedEventArgs e)
{
MessageBox.Show(e.Result.ToString());
} }
为了验证正常打开了,我们在页面中随便加点控件,这里我添加了一个按钮控件,运行项目后,会调用WCF服务,然后弹出一个消息框,显示Hello,world.
今天就先说到这里吧,欢迎大家加入QQ交流群一起交流学习~~
作者:雲霏霏
QQ交流群:243633526
博客地址:http://www.cnblogs.com/yunfeifei/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把,给我写作的动力。
WCF基础教程之开篇:创建、测试和调用WCF的更多相关文章
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
在上一篇WCF基础教程之开篇:创建.测试和调用WCF博客中,我们简单的介绍了如何创建一个WCF服务并调用这个服务.其实,上一篇博客主要是为了今天这篇博客做铺垫,考虑到网上大多数WCF教程都是从基础讲起 ...
- 知道WCF的地址用工厂通道方式快速调用WCF
知道WCF的地址用工厂通道方式快速调用WCF 1 using System; 2 using System.ServiceModel; 3 using System.ServiceModel.D ...
- Java基础教程——多线程:创建线程
多线程 进程 每一个应用程序在运行时,都会产生至少一个进程(process). 进程是操作系统进行"资源分配和调度"的独立单位. Windows系统的"任务管理器&quo ...
- WCF基础教程——vs2013创建wcf应用程序
引言 近期在项目中见到了师哥们常常谈到的WCF这方面的知识.当时在写程序的时候也没有理解wcf究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...
- IOS5基础教程之一-----如何创建XCode项目
一.IOS的基础知识 1.只有一个应用程序正在运行.在IOS上,每一段时间内只能激活一个应用程序并在屏幕上显示. 2.只有一个窗口.只允许应用程序操作的一个窗口. 3.访问受限.只能在IOS为应用程序 ...
- python基础教程:包的创建及导入
包是一种通过用“带点号的模块名”来构造 Python 模块命名空间的方法. 例如,模块名 A.B 表示 A 包中名为 B 的子模块.正如模块的使用使得不同模块的作者不必担心彼此的全局变量名称一样,使用 ...
- 纯手写wcf代码,wcf入门,wcf基础教程
1.定义服务协定 =>定义接口 using System.ServiceModel; namespace WcfConsole { /// <summary> /// 定义服 ...
- 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代码方式来 ...
- WCF入门教程(一)简介
WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foundation), 是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NE ...
随机推荐
- Use Apache HttpClient to Post json data
import org.apache.commons.io.IOUtils;import org.apache.http.HttpResponse;import org.apache.http.clie ...
- Co-saliency-Huazhu Fu
这里主要是fu老师的显著性检测分割的一些资料. 对应的主页为:http://hzfu.github.io/ 对应的一些codes:https://github.com/HzFu
- 下载Spring框架开发包
1.打开官网: http://spring.io/,打开project >> spring framework 2.在右侧找到要用的版本,如4.3.4,打开reference,搜索&quo ...
- java-关于浏览器的判断
一.判断是手机还是电脑浏览器 public final static String[] agent = { "Android", "iPhone", " ...
- HTTP中的POST、GET区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...
- 【洛谷P1196】银河英雄传说
有特殊意义的一道题-- 加权并查集,我们增加cnt.deep数组 分别表示i点所在链共有多少个点,以及路径压缩之前点i在链中的深度 每次合并时直接修改cnt,路径压缩的同时更新deep 因为每次查询之 ...
- JS-firstChild,firstElementChild,lastChild,firstElementChild,nextSibling,nextElementSibling
<body> <ul id="ul1"> <li>11111</li> <li>22222</li> < ...
- Swift - mutating关键字的使用
转载自:http://www.jianshu.com/p/14cc9d30770a 感谢作者:此ID想了很久 Swift中protocol的功能比OC中强大很多,不仅能再class中实现,同时也适用 ...
- Raab判别法确定级数是否收敛
- SQL一致性错误修复SQL
USE master; ); SET @databasename = 'BenlaiTask'; ALTER DATABASE BenlaiTask SET SINGLE_USER WITH ROLL ...