什么是WCF

6 篇文章 2 订阅
订阅专栏

一、概述

Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。

WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

WCF专门用于面向服务开发。

二、基于Asp.net 的应用程序开发与面向服务开发

在这里插入图片描述

在基于Asp.net 的应用程序开发中,我们由客户机的浏览器访问应用程序服务器,然后通过应用程序服务器中的数据库连接去连接数据库服务器,读取或是操作数据,有时候可能会多一个文件服务器。大家可以观察到,基本上所有的应用都放在了一台服务器上,但对于一个,由于业务上的需要(如:与外部系统交互),一台服务器很难支持所有的应用。我们再看下面的图:
在这里插入图片描述

客户机使用浏览器访问服务器A,服务器A为了业务需要与其他各种应用部署在服务器B、C、D…再通过WCF技术互相通信,相互访问…然而面向服务的好处不仅仅在此,他还提供了不同语言不同操作系统的可交互性…由于本文不是介绍SOA的文章,感兴趣的同学可以参见:SOA

三、第一个WCF程序

1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。建立完成后如下图所示:
  在这里插入图片描述

2.删除系统生成的两个文件IService1.cs与Service1.svc。
3.添加自定义的WCF【服务文件】User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法ShowName,在User.svc.cs对该接口的方法进行实现。

代码如下:

using System.ServiceModel;

namespace WCFService
{
    [ServiceContract]
    public interface IUser
    {
        [OperationContract]
        string ShowName(string name);
    }
}


namespace WCFService
{
    public class User : IUser
    {
        public string ShowName(string name)
        {
            string wcfName = string.Format("WCF服务,显示姓名:{0}", name);
            return wcfName;
        }
    }
}

大家可以看到,在WCF中的接口与普通接口的区别只在于两个上下文,其他的和我们正常学习的接口一样。定义这个上下文要添加System.ServiceModel的引用。
[ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。
[OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。
此时我们的第一个WCF服务程序就建立好了,将User.svc“设为起始页”,然后F5运行一下试试,如下图所示,VS2010自动调用了WCF的客户端测试工具以便我们测试程序:
在这里插入图片描述

我们双击上图中的 ShowName() 方法,出现如下图:
在这里插入图片描述

在请求窗口中的值中输入参数“你的姓名”,然后点击“调用”,在响应窗口中会出现返回值“WCF服务,显示姓名:你的姓名”,说明测试成功,点击下面的XML也可以看到XML的数据传输。我们现在建立好了服务的应用程序和业务逻辑,即非常简单的打印姓名的方法,测试也成功了。那么我们怎么用呢?

四、场景

我们设计的场景是在生产中经常应用的场景,把WCF程序寄宿在IIS之上。假设场景如下:A服务器和B服务器。我们把我们刚刚建立的WCF程序“部署”在B服务器上(本教程的A,B服务器都放是我自己的一台机器),我们的目标是在A服务器的应用程序来访问B服务器的WCF程序,实现服务器端的应用程序通讯。

五、将WCF程序寄宿在B服务器的IIS之上

首先我们将WCF应用程序发布一下,然后部署在B服务器的IIS之上,如下图所示:
  在这里插入图片描述
  
 鼠标右键浏览Uesr.svc,在游览器中出现如下图所示,说明服务部署成功。
在这里插入图片描述

六、在客户端[A服务器]创建服务的引用

我们这里以Web应用程序为例,建立地物理地址为本机,但是大家可以想像成B服务器是远程计算机,localhost为一个其他的IP地址。
  新建解决方案,并且创建ASP.NET Web应用程序的项目。命名为:WCFClient,如下图所示:
  在这里插入图片描述

(1)新建Asp.net页面,命名为:WcfTest.aspx。
(2)添加在第五步中部署的服务的引用。如下图所示:
wcf

此时弹出添加服务引用的窗体,如下图所示:
  在这里插入图片描述
  我们在地址里写上我们寄宿在IIS上的WCF服务的地址服务路径,此处为:http://localhost/User.svc?wsdl,在名称空间处填写WCFService[此名称空间要在下面的客户端中引用]然后点击“前往”–>“确定”按钮。此时我们完成了对服务的引用。我们再次查看解决方案,里面多了Service References的文件夹,通过资源管理器打开后里面多了些文件,这些文件用于客户端向服务端的调用,现在先不用管他。

七、使用WCF服务端的方法

WcfTest.aspx的代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WCFTest.aspx.cs" Inherits="WCFClient.WCFTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
    <asp:Button ID="btnSubmit" runat="server" Text="测试WCF服务" OnClick="btnClick" />
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

//引用WCF服务的名称空间
using WCFClient.WCFService;

namespace WCFClient
{
    public partial class WCFTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnClick(object sender, EventArgs e)
        {
            UserClient user = new UserClient();
            string result = user.ShowName(this.txtName.Text);
            Response.Write(result);
        }
    }
}

上面中的UserClient类是在添加引用的时候生成的服务端User类的客户端代理类,一般客户端代理类名称都会是**Client。我们运行一下看下效果。
 在这里插入图片描述
 
原文来自: http://www.cnblogs.com/iamlilinfeng

WCF教程一之WCF是什么,能做什么
hcshen的博客
05-02 8472
WCF教程
什么是WCF-WFC详解
10-06
Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。
WCF 介绍(一)
06-20 2422
前言:WCF是微软基于SOA(Service Oriented Architecture)推出的.Net平台下的框架产品,它代表了软件架构设计与开发的一种发展方向,在微软的战略计划中也占有非常重要的地位。了解和掌握WCF,对于程序员特别是基于微软产品开发的程序员而言,是非常有必要的。一、什么是WCF?根据微软官方的解释,WCF是使用托管代码建立和运行面向服务(Service
WCF服务实现与客户端交互完整示例源码
最新发布
weixin_35257663的博客
09-01 1190
本文还有配套的精品资源,点击获取 简介:WCF(Windows Communication Foundation)是.NET框架下一种用于构建分布式应用的服务通信架构。本示例源码通过控制台应用,详细展示了WCF服务的创建、部署、以及客户端与服务的交互过程。源码中包含服务端与客户端项目的结构,服务接口和服务实现的定义,服务宿主与客户端通道的创建,以及WCF服务在IIS和Win...
什么是WCF?
lee576的专栏
03-28 2127
使用Web服务的每一种主要语言或平台都把与自身相关的特性集合在一个名字下,Java开源开发人员使用Axis,PHP阵营则使用PEAR,而基于微软工具的开发则使用WCF (Windows Communication Foundation).  WCF曾被称为Indigo,实际上不只是一个Web服务项目,它的目的是要把所有的分布式系统技术提供一种保护伞,其核心是一套面向服务的API。  现在,.NET
wcf
铭心的博客
06-20 868
契约 在WCF中,所有的WCF服务都会被公开成为契约。契约是服务的功能的标准描述方式,通常情况下WCF包含四种类型的契约,这些契约如下所示。 q  服务契约(Service Contract):服务契约定义了客户端能够执行的操作,服务契约是WCF中使用最为广泛的一种契约。 q  数据契约(Data Contract):数据契约定义了客户端与服务器之间交互的数据类型。 q  错误契约(Fau
WCF入门指南:什么是WCF以及它的优势和用途
### 1.1 什么是WCF WCF(Windows Communication Foundation)是微软推出的一种用于构建分布式应用程序的技术框架。它提供了一种统一的、可扩展的编程模型,用于在不同的应用程序之间进行通信和交互。 ### 1.2 WCF...
WCF接口文档生成工具
03-21
WCF接口文档生成工具,直接DELL 生成API文档,方便实用
WCF 接口
扎克伯格2代的博客
04-21 225
windows communication foundation(WCF) :微软开发的一系列支持数据通信的应用程序框架,可以翻译为windows 通讯开发平台。 WCF 整合了原有的windows 通讯的.net remoting,webservice,socket 的机制,并融合有http 和ftp 的相关技术。 ...
WCF基础知识问与答
weixin_34007291的博客
04-15 137
学习WCF已有近两年的时间,其间又翻译了Juval的大作《Programming WCF Services》,我仍然觉得WCF还有更多的内容值得探索与挖掘。学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已。“学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么...
WCF简单介绍
devops
05-30 3792
一、什么是WCF   WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。是Windows平台上开发分布式应用最佳的实践方式。   WCF是.Net框架中的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由
.net WCF
u013400314的博客
10-11 1507
Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。
WCF】什么是WCF
热门推荐
hoiyaku
06-10 2万+
什么是WCF ​ Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集...
认识WCF技术
chengly0129的专栏
02-17 620
<br />概述Windows Communication Foundation(WCF) 是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入,与 Windows Presentation Foundation 及 Windows Workflow Foundation 并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。在 .NET Framework 2.0 以及前版本中,微软发展了 Web Serv
wcf】——WCF基础
你看到的逆袭,只不过是一场预备很久,草蛇灰线,伏笔千里的反攻
01-28 601
【前言】    最近在接触soa的时候接触了一下wcf,想想以前接触的Web service主要利用http和soap协议使用商业数据在web上传输。通过web调用web service可以执行从简单的请求道复杂的上午的任何功能。而wcf是支持多种的协议,目前更加主流的一种架构! 【内容】     wcf的基本概念:以契约(contract)来定义双方沟通的协议,合约必须要以接口的方式来体现
写文章

热门文章

  • SQL server创建数据库 63427
  • C#网络编程(Socket编程) 24721
  • SQL Server树状结构查询 13406
  • SQL Server数据表(创建,修改,删除) 13330
  • SQL Server删除数据库 11804

分类专栏

  • .NET 52篇
  • WPF 3篇
  • .Net高级 16篇
  • Socket网络编程 1篇
  • WebService 1篇
  • WCF服务 6篇
  • ADO.NET 5篇
  • ASP.NET 8篇
  • WebForm 2篇
  • MVC 17篇
  • WebAPI 3篇
  • ASP.NET Core 1篇
  • ORM
  • EF 7篇
  • SqlSugar
  • Linux
  • CentOs 5篇
  • SQL Server 14篇
  • T-SQL 6篇
  • Mysql 1篇
  • 学习技术栈总结 11篇
  • 微信开发 1篇
  • Git 1篇
  • Web前端
  • Vue.js 6篇
  • Ajax 1篇
  • HTML+CSS 7篇
  • Javascript基础 32篇
  • Js高级 6篇
  • jQuery 5篇
  • 快捷键 3篇

最新评论

  • C#网络编程(Socket编程)

    前端工程师s: 这个没有服务器向客户发送信息阿?

  • JavaScript中for循环练习题

    kqi augety: 哪里错误了?????咱们哪块从一开始啊?!请问?

  • 基于C# WinForms窗体——飞机大战

    2301_76772737: 您好!有源代码的压缩包吗

  • 基于C# WinForms窗体——飞机大战

    董熠辰: 写在一坨,不过很厉害

  • JavaScript中for循环练习题

    m0_65795523: 第8题错了呀,for循环里的定义应该从1开始呀

最新文章

  • WPF MVVM使用遇见问题
  • Navicat连接mysql常见报错
  • Centos8搭建SVN
2024年3篇
2022年6篇
2021年11篇
2020年108篇
2019年102篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢雕塑厂取名有没有玻璃钢雕塑专用漆黄山步行街玻璃钢雕塑优势玻璃钢雕塑厂家视频潮州玻璃钢雕塑服务电话南昌玻璃钢雕塑河南户外商场美陈报价内蒙古玻璃钢雕塑生产厂家商场美陈类广州学校玻璃钢雕塑制作商丘玻璃钢动物雕塑定制多少钱昆明肇庆玻璃钢卡通雕塑建德商场美陈名图玻璃钢雕塑工程有限公司北京抽象玻璃钢雕塑多少钱招远玻璃钢牌匾雕塑安阳玻璃钢卡通雕塑定做商场悬挂美陈布置惠州玻璃钢雕塑生产厂家河北玻璃钢西方人物雕塑供应商苏州商场美陈市场玻璃钢雕塑喷漆玻璃钢雕塑菩萨玻璃钢笑佛人像雕塑大全商场柜台美陈的重要性贵州龙门玻璃钢雕塑加工厂家新乡动物玻璃钢雕塑儿童玻璃钢雕塑公司方案商业商场美陈有哪些厂家雕塑玻璃钢香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化