WCF研究-中篇
中篇
5.托管于宿主
6.消息模式
7.WCF行为-实例管理和并发控制
8.安全
5.托管于宿主
托管
宿主Host

ServiceHost host = new ServiceHost(service Type );
host.Open();
private void button1_Click(object sender, EventArgs e)
{ System.ServiceModel.ServiceHost myhost = new System.ServiceModel.ServiceHost(typeof(WeatherInfoService.WeatherInfoService)); try
{
myhost.Open(); this.textBox1.AppendText(myhost.State.ToString() + " 已经启动" + DateTime.Now);
}
catch (Exception)
{
this.textBox1.AppendText(" 启动错误" + DateTime.Now);
} System.Threading.Thread.Sleep(); try
{
myhost.Close();
this.textBox1.AppendText(myhost.State.ToString() + " 已经Close" + DateTime.Now);
}
catch (Exception)
{
this.textBox1.AppendText(" 启动错误" + DateTime.Now);
}
}
宿主代码

public interface IChatCallBack
{
[OperationContract(IsOneWay = true)]
void Receive(string name, string msg); [OperationContract(IsOneWay = true)]
void ReceiveWhisper(string name, string msg); [OperationContract(IsOneWay = true)]
void UserEnter(string name); [OperationContract(IsOneWay = true)]
void UserLeave(string name); [OperationContract(IsOneWay = true)]
void LoadUsers(List<string> chaters); }
2 将该回调协定的类型分配给ServiceContractAttribute Attribute的CallbackContract property。
在服务接口的上面添加属性标签


}
namespace System.ServiceModel
{
// 摘要:
// 指定可用来处理包含在传入消息中的调用的服务实例数。
public enum InstanceContextMode
{
// 摘要:
// 为每个会话创建一个新的 System.ServiceModel.InstanceContext 对象。
PerSession = ,
//
// 摘要:
// 新的 System.ServiceModel.InstanceContext 对象在每次调用前创建,在调用后回收。如果信道未创建会话,则该值的行为就如同
// System.ServiceModel.InstanceContextMode.PerCall 一样。
PerCall = ,
//
// 摘要:
// 只有一个 System.ServiceModel.InstanceContext 对象用于所有传入呼叫,并且在调用后不回收。如果服务对象不存在,则创建一个。
Single = ,
}
}
WCF 实例管理的枚举
修饰服务类
namespace System.ServiceModel
{
// 摘要:
// 指定服务类是支持单线程还是多线程操作模式。
public enum ConcurrencyMode
{
// 摘要:
// 服务实例是单线程的,且不接受可重入调用。如果 System.ServiceModel.ServiceBehaviorAttribute.InstanceContextMode
// 属性为 System.ServiceModel.InstanceContextMode.Single,且其他消息在实例处理调用的同时到达,则这些消息必须等待,直到服务可用或消息超时为止。
Single = ,
//
// 摘要:
// 服务实例是单线程的,且接受可重入调用。可重入服务接受在调用其他服务的同时进行调用;因此在调出之前,您需要负责让对象的状态一致,而在调出之后,必须确认本地操作数据有效。请注意,只有通过
// WCF 通道调用其他服务,才能解除服务实例锁定。在此情况下,已调用的服务可以通过回调重入第一个服务。如果第一个服务不可重入,则该调用顺序会导致死锁。有关详细信息,请参见
// System.ServiceModel.ServiceBehaviorAttribute.ConcurrencyMode。
Reentrant = ,
//
// 摘要:
// 服务实例是多线程的。无同步保证。因为其他线程可以随时更改服务对象,所以必须始终处理同步与状态一致性。
Multiple = ,
}
}
WCF 并发管理的枚举





WCF研究-中篇的更多相关文章
- WCF研究-后篇
最后就对之前的资料进行整理以及在其他博客园的朋友那看到的资料稍微分享一下,这样有助于学习和使用WCF的朋友更好的学习和理解WCF 后期要是看到合适的资料也会再次编辑这个后篇,让我共同进步! 后篇 1. ...
- WCF研究-前篇
前篇 1.从SOA说起 2.什么是WCF 3.WCF通信模型 4.Endpoint与ABC以及元数据 1.SOA (Service Oriented Architecture) Ø 一种组件架 ...
- WCF Cookie处理
wcf操作cookie看似很简单,如果不对Wcf研究一把还是很难的,基本上无从下手. 这里上一图 上面的结果,岂止是坑爹,简直就是坑爹!!! 废话不多说,直接上代码: cookie读取 var req ...
- .NET4.5中WCF中默认生成的basicHttpsBinding的研究
起因: 使用.net4.5建立了一个空白的WCF服务.默认使用的绑定配置是basicHttpsBinding. 问题发现: 1.用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHt ...
- WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]
原文:WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇] 在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常.在服务执行过 ...
- WCF技术剖析之二十一:WCF基本异常处理模式[中篇]
原文:WCF技术剖析之二十一:WCF基本异常处理模式[中篇] 通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultExcept ...
- WCF技术剖析之十七:消息(Message)详解(中篇)
原文:WCF技术剖析之十七:消息(Message)详解(中篇) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在上篇中 ...
- 研究WCF并发及处理能力的控制
WCF 跟并发 性能相关的几个配置:1.系统控制的客户端网络连接并发(如果服务端也需要并发请求的话这个参数也是需要的): <configuration> ...
- 《WCF技术剖析》博文系列汇总[持续更新中]
原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...
随机推荐
- 【bzoj2733】永无乡(无旋treap启发式合并 + 并查集)
传送门 题目分析 起初每个岛都是一个平衡树, 并查集的祖先都是自己.合并两岛时,pri较小的祖先会被作为合并后的祖先, 而两颗平衡树采用启发式合并.查询k值就是基本操作. code #include& ...
- instsrv.exe用法
这个小工具是用以安装和卸载可执行的服务和指派服务名给这些可执行的服务的. 一:绑定程序和服务 这里我们设定要将F:\cpu.exe 以 abc 的名称显示作为服务的话,我们应当这样子做: 在开 ...
- Linux经常使用的命令(21) - find参数具体解释
一.使用name选项: 文件名称选项是find命令最经常使用的选项.要么单独使用该选项,要么和其它选项一起使用. 能够使用某种文件名称模式来匹配文件,记住要用引號将文件名称模式引起来. 无论当前路 ...
- C# WPF 低仿网易云音乐(PC)Banner动画控件
原文:C# WPF 低仿网易云音乐(PC)Banner动画控件 由于技术有限没能做到一模一样的动画,只是粗略地做了一下.动画有点生硬,还有就是没做出网易云音乐的立体感.代码非常简单粗暴,而且我也写有很 ...
- Wireshark非标准分析port无流量
Wireshark非标准分析port无流量 2.2.2 非标准分析port无流量Wireshark非标准分析port流量 应用程序执行使用非标准port号总是网络分析专家最关注的.关注该应用程序是否 ...
- 用 Expression Blend 创建酷炫的 Button
原文:用 Expression Blend 创建酷炫的 Button 原文:Creating "Cool" Buttons with Expression Blend Author ...
- Leetcode 144 Binary Tree Preorder Traversal 二叉树
二叉树的基础操作:二叉树的先序遍历(详细请看数据结构和算法,任意本书都有介绍),即根,左子树,右子树,实现方法中还有用栈实现的,这里不介绍了 /** * Definition for binary t ...
- 上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片
原文:上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片 我们知道,如果网站上传图片时,如果用户上传的是CMYK图片,那么在网站上将是无法显示的,通常的现象是出现一个红叉.下面使用将Ima ...
- WPF实现左右移动(晃动)动画效果
原文:WPF实现左右移动(晃动)动画效果 实现控件或布局的左右移动(晃动)主要用到DoubleAnimation以及Storyboard 布局代码为: <Canvas> <Grid ...
- 使用bcc32做在windowXP上qt3.2.1编译环境的配置
1.安装borland C++编译器,编译器文件所在目录下的文件如下: 其中bcc32.cfg和ilink32.cfg文件是自己加进去的,bcc32.cfg内容是-I"C:\Borland\ ...