该例子的过程是:服务逻辑人有了本事,服务通信人和他建立联系。客户指定服务逻辑人,指派客户通信人与服务通信人接触,使用服务逻辑人的本事。

先教服务逻辑人本事。注意先新建类库,再在类库中新建类。

服务逻辑人

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;//在类库中添加引用System.ServiceModel

namespace HelloIndigo//服务逻辑人
{
    [ServiceContract(Namespace = "http://www.thatindigogirl.com/samples/2006/06")]//服务逻辑人指定,该本事,能被客户调用(术语:服务契约)
    public interface IHeloIndigoService
    {
        [OperationContract]//服务逻辑人指定,该本事的具体行为,能被客户调用(术语:操作契约)
        string HelloIndigo();
    }
    public class HelloIndigoService:IHeloIndigoService//逻辑人的本事
    {
        public string HelloIndigo()//该本事的具体行为
        {
            return "Hello Indigo";
        }
    }
}

搭建运行环境,里面包括了服务通信人。这是个控制台应用程序。

运行环境

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;//添加引用>.NET>System.ServiceModel
//添加引用>项目>逻辑人HelloIndigo

namespace Host//运行环境
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(HelloIndigo.HelloIndigoService), new Uri("net.tcp://localhost:8000/HelloIndigo")))//通信人的交通工具net.tcp,逻辑人地址localhost:8000/HelloIndigo
            {

host.AddServiceEndpoint(typeof(HelloIndigo.IHeloIndigoService), new NetTcpBinding(), "HelloIndigoService");//通信人加入运行环境,指定逻辑人的本事
                host.Open();//生成运行环境
                Console.WriteLine("按回车关闭运行环境(宿主Host)");
                Console.ReadLine();
            }
        }
    }
}

客户发话了。这是个控制台应用程序

客户

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;//添加引用System.ServiceModel

namespace Client//客户
{
    [ServiceContract(Namespace = "http://www.thatindigogirl.com/samples/2006/06")]
    public interface IHeloIndigoService //客户指定逻辑人的本事
    {
        [OperationContract]//客户指定调用服务逻辑人的HelloIndigo()本事
        string HelloIndigo();
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("按1调用服务,按0退出");
            string n = Console.ReadLine();

if (n == "1")
            {
                //客户指派客户通信人,与服务通信人接触,约定其交通工具,地址,逻辑人的本事
                EndpointAddress ep = new EndpointAddress("net.tcp://localhost:8000/HelloIndigo/HelloIndigoService");
                //获取通信人得到的数据
                IHeloIndigoService proxy = ChannelFactory<IHeloIndigoService>.CreateChannel(new NetTcpBinding(), ep);
                //使用通信人得到的数据
                string s = proxy.HelloIndigo();
                Console.WriteLine(s);
                Console.ReadLine();
            }
            else if (n == "0")
            {

}
        }
    }
}

全部编译好后,先启动运动环境,再客户。

转载于:https://www.cnblogs.com/samwu/archive/2010/11/09/1872921.html

WCF一个运行环境,一个服务逻辑人,一个客户相关推荐

  1. 什么是JDK?Java JDK 下载,安装与环境变量配置注意点。使用记事本编写运行环境配置后的第一个Java程序

    万事开头难.在了解什么是 Java.Java 语言的特点以及学习方法之后,本节将介绍如何搭建编写 Java 程序所需要的开发环境--JDK(Java Development Kit). JDK 是一种 ...

  2. fir.im 全名 Fly It Remotely ,是一个为移动开发者服务,FIR一个免费的App托管平台

    一 :FIR.im  --FIR一个免费的App托管平台 官网地址: https://fir.im/apps 「fir.im」是国内首家为移动开发者提供 App 免费托管分发服务的平台,为移动开发者提 ...

  3. linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...

    centos运行.py centos5.5下搭建python开发运行环境 发布时间:2017-04-28 来源:服务器之家 我们知道ython可以在windows.linux.android运行了,但 ...

  4. 狼已经一个sr闪狼已经夺人一个闪

    "你就像那冬天里的一把火-熊熊火焰 温暖了我的心窝---" "哎!都是盖一床被子长大的老伙计了,至于这么肉麻么."老小子顺便撅了撅屁股,整个一'野牛防狼式',差 ...

  5. Dubbo的基本介绍和搭建一个Dubbo环境

    什么是Dubbo Dubbo是一个分布式服务框架,提供了高性能以及透明化的RPC远程服务调用解决方法,以及SOA服务治理方案. Dubbo的核心部分: 远程通信:提供了高性能以及透明化的RPC远程服务 ...

  6. 在docker容器中创建用户组和用户,并且多用户共用一个anaconda环境

    转载自:https://www.cnblogs.com/devilmaycry812839668/p/13760815.html 在docker容器中创建用户组和用户,并且多用户共用一个anacond ...

  7. centos7安装docker并配置php运行环境

    一.安装docker 首先我们先来了解一下什么是docker. docker是一个虚拟化的技术,基于 Linux 内核,是将进程进行封装隔离,由于隔离的进程独立于宿主机和其它的隔离的进程,因此也可以称 ...

  8. html代码在线运行环境,ES5/可执行代码与执行环境

    可执行代码类型 一共有三种 ECMA 脚本可执行代码: 全局代码是指被作为 ECMAScript Eval 代码是指提供给 eval 内置函数的源代码文本.更精确地说,如果传递给 eval 内置函数的 ...

  9. R语言运行环境安装配置

    想要运行R语言代码,首先需要安装好R语言的运行环境--RGui,很多人包括我自己喜欢另一个运行环境--Rstudio.下面分别就安装RGui.Rstudio做分别说明. 1.安装RGui 去R语言官方 ...

最新文章

  1. WinCE项目应用之车载导航
  2. (一)SOA学习-相关缩写
  3. how to improve your ielts score on the exam?
  4. VirtualAlloc和VirtualCopy的蕴含知识点
  5. 关于.netMVC 出现@ViewBag 出现错误(波浪红线)的解决方法
  6. dhcp网络服务的搭建和配置
  7. IBM X3650 M4服务器使用U盘重装系统教程
  8. 基于springboot小区物业管理系统
  9. Tapestry5 事件分派机制
  10. 金融银行测试面试题:网上银行转账是怎么测的?
  11. 项目经理面对矛盾冲突是怎样解决的
  12. 概率神经网络的主要思想,神经网络随机数预测
  13. python中counter怎么用_带你走进python 计数器类Counter的用法
  14. 什么是企业邮箱?企业邮箱有什么用途?
  15. 第21章、系统设定工具(网络与打印机)与硬件侦测
  16. 胡伟立-孤独[影视配乐扒曲]
  17. 改造vue-element-admin 的登录功能,变成从后台数据库中验证登录
  18. express选择模板hbs
  19. 鼠标移入图标显示二维码功能实现
  20. SIMATIC S7-1200以及SIMATICS G120组态

热门文章

  1. 电单车拉力赛的调试情况汇集
  2. Infineon第九届汽车电子开发者大会宣传视频
  3. 第十五届全国大学生智能车东北赛区成绩
  4. python重复执行函数_Python threading 单线程 timer重复调用函数
  5. c语言作业算术表达式求值,算术表达式求值演示(C语言版)
  6. java加载不进去_java sql添加不进去
  7. 9月20华为鸿蒙,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片
  8. showdoc windows 搭建_Windows 搭建在线文档工具showdoc工具
  9. 如何正确使用as follows 与 following
  10. c语言make编译器,cmake 指定编译器