WCF一个运行环境,一个服务逻辑人,一个客户
该例子的过程是:服务逻辑人有了本事,服务通信人和他建立联系。客户指定服务逻辑人,指派客户通信人与服务通信人接触,使用服务逻辑人的本事。
先教服务逻辑人本事。注意先新建类库,再在类库中新建类。
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.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.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一个运行环境,一个服务逻辑人,一个客户相关推荐
- 什么是JDK?Java JDK 下载,安装与环境变量配置注意点。使用记事本编写运行环境配置后的第一个Java程序
万事开头难.在了解什么是 Java.Java 语言的特点以及学习方法之后,本节将介绍如何搭建编写 Java 程序所需要的开发环境--JDK(Java Development Kit). JDK 是一种 ...
- fir.im 全名 Fly It Remotely ,是一个为移动开发者服务,FIR一个免费的App托管平台
一 :FIR.im --FIR一个免费的App托管平台 官网地址: https://fir.im/apps 「fir.im」是国内首家为移动开发者提供 App 免费托管分发服务的平台,为移动开发者提 ...
- linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...
centos运行.py centos5.5下搭建python开发运行环境 发布时间:2017-04-28 来源:服务器之家 我们知道ython可以在windows.linux.android运行了,但 ...
- 狼已经一个sr闪狼已经夺人一个闪
"你就像那冬天里的一把火-熊熊火焰 温暖了我的心窝---" "哎!都是盖一床被子长大的老伙计了,至于这么肉麻么."老小子顺便撅了撅屁股,整个一'野牛防狼式',差 ...
- Dubbo的基本介绍和搭建一个Dubbo环境
什么是Dubbo Dubbo是一个分布式服务框架,提供了高性能以及透明化的RPC远程服务调用解决方法,以及SOA服务治理方案. Dubbo的核心部分: 远程通信:提供了高性能以及透明化的RPC远程服务 ...
- 在docker容器中创建用户组和用户,并且多用户共用一个anaconda环境
转载自:https://www.cnblogs.com/devilmaycry812839668/p/13760815.html 在docker容器中创建用户组和用户,并且多用户共用一个anacond ...
- centos7安装docker并配置php运行环境
一.安装docker 首先我们先来了解一下什么是docker. docker是一个虚拟化的技术,基于 Linux 内核,是将进程进行封装隔离,由于隔离的进程独立于宿主机和其它的隔离的进程,因此也可以称 ...
- html代码在线运行环境,ES5/可执行代码与执行环境
可执行代码类型 一共有三种 ECMA 脚本可执行代码: 全局代码是指被作为 ECMAScript Eval 代码是指提供给 eval 内置函数的源代码文本.更精确地说,如果传递给 eval 内置函数的 ...
- R语言运行环境安装配置
想要运行R语言代码,首先需要安装好R语言的运行环境--RGui,很多人包括我自己喜欢另一个运行环境--Rstudio.下面分别就安装RGui.Rstudio做分别说明. 1.安装RGui 去R语言官方 ...
最新文章
- WinCE项目应用之车载导航
- (一)SOA学习-相关缩写
- how to improve your ielts score on the exam?
- VirtualAlloc和VirtualCopy的蕴含知识点
- 关于.netMVC 出现@ViewBag 出现错误(波浪红线)的解决方法
- dhcp网络服务的搭建和配置
- IBM X3650 M4服务器使用U盘重装系统教程
- 基于springboot小区物业管理系统
- Tapestry5 事件分派机制
- 金融银行测试面试题:网上银行转账是怎么测的?
- 项目经理面对矛盾冲突是怎样解决的
- 概率神经网络的主要思想,神经网络随机数预测
- python中counter怎么用_带你走进python 计数器类Counter的用法
- 什么是企业邮箱?企业邮箱有什么用途?
- 第21章、系统设定工具(网络与打印机)与硬件侦测
- 胡伟立-孤独[影视配乐扒曲]
- 改造vue-element-admin 的登录功能,变成从后台数据库中验证登录
- express选择模板hbs
- 鼠标移入图标显示二维码功能实现
- SIMATIC S7-1200以及SIMATICS G120组态
热门文章
- 电单车拉力赛的调试情况汇集
- Infineon第九届汽车电子开发者大会宣传视频
- 第十五届全国大学生智能车东北赛区成绩
- python重复执行函数_Python threading 单线程 timer重复调用函数
- c语言作业算术表达式求值,算术表达式求值演示(C语言版)
- java加载不进去_java sql添加不进去
- 9月20华为鸿蒙,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片
- showdoc windows 搭建_Windows 搭建在线文档工具showdoc工具
- 如何正确使用as follows 与 following
- c语言make编译器,cmake 指定编译器