WCF 宿主与通信模式(二)

宿主

每个WCF服务都必须托管在Windows进程中,该进程称为宿主进程(host process)

单个宿主进程可以托管多个服务,相同的服务类型也可以托管在多个宿主进程中。

 

wcf中托管服务一般有一下四种:

寄宿方式

描述

Console寄宿

利于开发调试,但不是生产环境中的最佳实践。

winform寄宿

方便与用户进行交互,用户想开就开,想关就关,但如果机器重启了,不得不自己手动开一下,危险+麻烦。

IIS寄宿

此寄宿在实战项目中得到了广泛的应用。好处有:随系统启动和停止。iis有大量的管理策略对其进行管理。即想利用wcf的功能,还想访问asp.net的功能。

Window Service 寄宿

这个寄宿在实战中也是广泛运用的,同时也是随系统开启或者停止。

 

通信模式

  WCF在通信过程中有三种模式:请求与答复、单向、双工通信。

模式

描述

特点

请求与答复模式

客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务端有了答复后才能继续执行其他程序。

请求与答复模式为WCF的默认模式,即使返回值是void 也属于请求与答复模式。

缺点:如果用WCF在程序A中上传一个2G的文件,那么要想执行程序B也许就是几个小时后的事情了。如果操作需要很长的时间,那么客户端程序的响应能力将会大大的下降。

优点:有返回值我们就可以向客户端返回错误信息,如:只接收".rar"文件等信息。

单向模式

客户端向服务端发送求,但是不管服务端是否执行完成就接着执行下面的程序。

优缺点与“请求响应模式”差不多倒过来。

特点:使用 IsOneWay=true 标记的操作不得声明输出参数、引用参数或返回值

双工模式

双工模式建立在上面两种模式的基础之上,实现客户端与服务端相互的调用。相互调用:以往我们只是在客户端调用服务端,然后服务端有返回值返回客户端,而相互调用不光是客户端调用服务端,而且服务端也可以调用客户端的方法。

双工模式是建立在以上两种模式之上的模式,他们并不冲突。

支持回调的绑定有4种:WSDualHttpBinding、

NetTcpBinding、

NetNamedPipeBinding、

NetPeerTcpBinding

转载于:https://www.cnblogs.com/birdwawe/p/4583326.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql端口被占用_MySQL重启端口被占用处理

1,查看日志的ERROR2018-05-23T01:26:59.230382Z 0 [Warning] NO_AUTO_CREATE_USER sql mode was not set.2018-05-23T01:26:59.230409Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled2018-05-23T01:26:59.230…

poj 3660 传递闭包 **

题意:题目给出了m对的相对关系,求有多少个排名是确定的。 链接:点我 如果这个点到其他点的关系是确定的,那么这个点就是确定的,注意如果这个点到不了其他点,但其他点能到这个点,那么这个点和其他…

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识、正则表达式实现浏览、获取url、下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计…

mysql员工脚本_mySQL常用脚本汇总

mysql的常用脚本有哪些呢?我们来做个总结建表语句sql语句最后指定主键DROP TABLE IF EXISTS user_info1;CREATE TABLE user_info1 (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT 姓名,password varcha…

多线程 调用多线程的方法 Runtime与ProcessBuilder

一般我们使用Java运行其他类中的方法的时候,无论是静态调用还是动态调用,都是在当前的进程中执行的。也就是只有一个Java虚拟机实例在运行。有时候需要通过Java代码启动多个Java子进程,这样做会消耗些资源,但是程序变得更稳定。因…

mysql可连接_mysql开启远程可连接

1.打开cmd窗口,进入MySql安装的bin目录2.执行命令登录数据库,之后会出现一行要你输入密码的mysql -u root -p3.执行以下命令分配新用户:grant all privileges on *.* to ‘用户名‘‘IP地址‘ identified by ‘密码‘;4.执行完上述命令后用下面的命令刷新…

ubuntu14.04 python2.7 安装配置OpenCV3.0

环境:ubuntu14.04 python2.7 内容:安装并配置OpenCV3.0 今天按照OpenCV官网上的步骤装了OpenCV但是,装好之后python提示“No module named cv2” 首先,安装OpenCV的步骤: OpenCV官网的安装步骤:http://doc…

mysql导出如何不区分大小写_mysql 不区分大小写

show variables like %case%-------------------------------| Variable_name | Value |-------------------------------| lower_case_file_system | OFF || lower_case_table_names | 1 | 表示已经是支持忽略大小写了-------------------------------修改 /etc/mysql/…

[iOS] Win8下在Vmware11中安装使用苹果系统OS X 10.10

近来因为人事变动,领导打算安排我做 iOS 的项目,所以需要花一些时间提前准备一下iOS相关的东西。因为自己手头上并没有 Mac(过年为了闲的时候能玩玩游戏买了联想,唉),想想不能只靠每天在公司的时间练 demo …

html5的网络书店图书网站代码_【技能提升】10个编写HTML5的实用小技巧

1. 新的文档类型(Doctype)html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>上面这个既麻烦又难记的XHTML文档类型你还在使用吗?如果还是这样的话,现在该切换到新的HTML5文档类型…

hdu2457 Trie图+dp

hdu2457 给定n个模式串, 和一个文本串 问如果修改最少的字符串使得文本串不包含模式串, 输出最少的次数,如果不能修改成功,则输出-1 dp[i][j] 表示长度为i的字符串, 到达状态j(Trie图中的结点)…

sql中if语句的用法_Python中的if条件语句

Python中的if语句在实际的编程中,经常需要检查一系列条件,并据此决定采取什么措施。正常情况下,程序的执行是自上而下的进行,if语句则根据条件判断,实现程序的执行顺序改变。一、if-else语句1、语法:if 条件…

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法

权限问题,授权 给 root 所有sql 权限 mysql> grant all privileges on *.* to root"%" identified by ".";Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)转载于:https://www.cnbl…

mysql中non用什么_mysql Non-Transactional Database Only(只支持MyISAM)

后来在做WordPress,一开始还不知道原来WordPress用的是InnoDB数据引擎,于是在原来的数据库里面就建了一个数据库,一开始也没发觉问题,安装,导入sql,都没问题,当时也没多想。直到这几天因为又要装多一个Word…

openSUSE 11 上的配置可以Xmanager远程桌面

openSUSE 11 上的配置(适用于默认图形环境为KDE的Linux): 1、配置KDM。 openSUSE 11的默认图形环境为KDE,虽然可以同时安装GDM和KDM,但默认只启动了KDM。所以openSUSE 11只需配置KDM,如果你启动了GDM来代替KDM,则配置可…

timed_waiting线程是否占用cpu_程序CPU占用率飙升,如何定位线程的堆栈信息?超详细,值得收藏看不懂还有配套视频 第319篇...

相关历史文章(阅读本文前,您可能需要先看下之前的系列?)国内最全的Spring Boot系列之三2020上半年发文汇总「值得收藏」GraphQL的探索之路 – SpringBoot集成GraphQL小栗子篇二 - 第315篇GraphQL的探索之路 – SpringBoot集成GraphQL之Query篇三 - 第316篇GraphQL的…

图片的缩放(放大缩小)

package com.school.util;import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;import javax.imageio.ImageIO; /*** * <b>类名称&#xff1a;图片处理工具类</b>ImageUtils…

sql多层嵌套别名无效_SQL之复杂查询

前文学了汇总分析&#xff0c;学了常见的汇总函数&#xff0c;会分组并且掌握了对分组结果指定条件。今天开始学习SQL的视图和子查询&#xff0c;还有数据库关联与嵌套查询内容的学习。一、视图1.1视图是有单固定存储可反复读取使用的子查询&#xff0c;所以视图适用于频繁使用…

POJ 1195 Mobile phones【 二维树状数组 】

题意&#xff1a;基础的二维数组&#xff0c;注意 0 lowbit(0)会陷入无限循环----- 之前做一道一维的一直tle,就是因为这个-------------------------- 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include <cmath> 5 #includ…

mysql 交叉连接的用法_深入理解MySQL的外连接、内连接、交叉连接

1、内联接(典型的联接运算&#xff0c;使用像 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如&#xff0c;检索 students和courses表中学生标识号相同的所有行。2、外联接。外联接可以是左向外联…