1、定义服务协定

    =>定义接口

using System.ServiceModel;

namespace WcfConsole
{
/// <summary>
/// 定义服务协定
/// </summary>
[ServiceContract]
interface IW
{
[OperationContract]
string HelloWorld();
}
}

2、实现服务协定

    =>实现接口

namespace WcfConsole
{
/// <summary>
/// 实现服务协定
/// </summary>
public class W : IW
{
public string HelloWorld()
{
return "HelloWorld";
}
}
}

3、承载和执行服务

    =>打开服务

using System;
using System.ServiceModel;
using System.ServiceModel.Description; namespace WcfConsole
{
/// <summary>
/// 承载和执行主要的 WCF 服务
/// </summary>
class Program
{
static void Main(string[] args)
{
//创建服务网址
Uri url = new Uri("http://localhost:5210/W/");
//创建server主机
ServiceHost host = new ServiceHost(typeof(W), url);
try
{
//加入服务端点
host.AddServiceEndpoint(typeof(IW), new WSHttpBinding(), "serviceName"); //启用元素交换
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb); //打开服务
host.Open(); Console.WriteLine("服务打开成功……");
Console.ReadKey(); //关闭服务
host.Close();
}
catch (CommunicationException e)
{
Console.WriteLine(e.Message);
//关闭服务
host.Close();
}
}
}
}

4、创建client

    =>须要先打开匃

    =>新建项目

    =>加入服务引用

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlna2VsaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

5、配置client

    =>加入时微软自己主动配置

<?xml version="1.0" encoding="utf-8" ?

>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IW" />
</wsHttpBinding>
</bindings>
<client>
<!--指定用于调用服务时,端点-->
<endpoint address="http://localhost:5210/W/serviceName" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IW" contract="WService.IW"
name="WSHttpBinding_IW">
<identity>
<userPrincipalName value="DUHUIFENG\liman" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>

6、使用client

    =>

using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WService.WClient w = new WService.WClient();
string result = w.HelloWorld();
Console.WriteLine(result);
w.Close(); Console.ReadKey();
}
}
}

纯手写wcf代码,wcf入门,wcf基础教程的更多相关文章

  1. 纯手写Myatis框架

    1.接口层-和数据库交互的方式 MyBatis和数据库的交互有两种方式: 使用传统的MyBatis提供的API: 使用Mapper接口: 2.使用Mapper接口 MyBatis 将配置文件中的每一个 ...

  2. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

  3. springmvc 动态代理 JDK实现与模拟JDK纯手写实现。

    首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用  ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...

  4. 简易-五星评分-jQuery纯手写

    超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...

  5. 超级简单的jQuery纯手写五星评分效果

    超级简单的评分功能,分为四个步骤轻松搞定: 第一步: 引入jquery文件:这里我用百度CDN的jquery: <script src="http://apps.bdimg.com/l ...

  6. .net学习之Session、Cookie、手写Ajax代码以及请求流程

    1.IIS 7 以上版本集成了两种模式,一种是经典模式,一种是集成模式(直接将asp.net框架集成到IIS中) 2.浏览器和服务器端通过什么技术来实现的?Socket(套接字),通信的语法是HTTP ...

  7. SQL纯手写创建数据库到表内内容

    建表啥的只点点鼠标,太外行了,不如来看看我的纯手写,让表从无到有一系列:还有存储过程临时表,不间断的重排序: 一:建数据库 create Database Show on primary ( name ...

  8. 纯手写SpringMVC到SpringBoot框架项目实战

    引言 Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 通过这种方式,springboot ...

  9. 快速开发框架(FDMS)新增1000个对外接口都不须要手写一行代码

    一个大型系统难免会跟其它系统有数据交换,这里就要提供数据接口给外部系统. 曾经在一家智能终端设备的公司上班.那段时间的主要工作就是写接口.接口须要与手机.手持设备.系统管理软件等进行数据交换.总结了一 ...

  10. qt之旅-1纯手写Qt界面

    通过手写qt代码来认识qt程序的构成,以及特性.设计一个查找对话框.以下是设计过程 1 新建一个empty qt project 2 配置pro文件 HEADERS += \ Find.h QT += ...

随机推荐

  1. 提升效率的JQUERY(转)

    摘要 本文部分整理了JQuery性能提升的一些方法,内容综合自artzstudio,viralpatel,htmlgoodies等网站,希望对大家有所帮助.这些规则虽然简单,但如果不遵循就会影响程序执 ...

  2. 使用scp免passwordserver间传递文件

    1.aserver下执行命令  ssh-keygen -t rsa 2.三个回车 3.在用户的文件夹下 ~/.ssh/产生两个文件,id_rsa,id_rsa.pub 4.把aserver下相应的文件 ...

  3. Emmet:HTML/CSS编写插件

    http://www.iteye.com/news/27580 用法: http://docs.emmet.io/cheat-sheet/ sublime 2 添加:1. Ctrl+Alt+p -&g ...

  4. wxPython 4.0.0b2安装

    https://www.cnblogs.com/NanShan2016/p/5518235.html 亮的界面是一个GUI程序必不可少的一部分,wxPython可以做到这一点,加之Python强大的功 ...

  5. 快速上手UIView动画

    UIView动画有两种使用方法 UIView [begin commit]模式 //动画开始标记 [UIView beginAnimations:@"changeframe" co ...

  6. WPF数据模板样式选择器

    在使用数据模板样式选择器时,不能设置ItemContainerStyle的属性值,如果设置了该值,那么数据模板样式选择器会失去作用. 在使用数据模板样式选择器时,首先要创建数据模板样式选择器对象,此对 ...

  7. 怎样在asp.net中用一般处理文件ashx实现下载功能

    /// <summary> /// 下载文件,支持大文件.续传.速度限制.支持续传的响应头Accept-Ranges.ETag,请求头Range . /// Accept-Ranges:响 ...

  8. vim杂记

    "clang-completelet g:clang_complete_copen=1let g:clang_periodic_quickfix=1let g:clang_snippets= ...

  9. GetWindowText 卡死的一种可能的原因

    最近一个项目中碰到GetWindowText经常卡死的问题,这个项目有多个线程,检查代码发现发生死锁的是一个数据线程和一个UI线程. 示意图大致如下(data thread和UI thread在同一个 ...

  10. Mac下使用安装MongoDB

    1.安装方法1:Mac电脑上面安装很简单,直接下载需要的版本解压即可: 下载网址 https://www.mongodb.com/download-center?jmp=nav#community 方 ...