首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WCF技术剖析之三十一: WCF事务编程

对于NetTcpBinding和NetNamedPipeBinding来说,我们可以通过属性TransactionFlow设置或者获取绑定是否支持事务流转的开关,并通过TransactionProtocol...所以,它们仅仅具有TransactionFlow属性,并没有TransactionProtocol属性,该属性定义在它们的基类WSHttpBindingBase上面: 1: public abstract...{ get; set; } 5: } 系统绑定的TransactionFlow和TransactionProtocol属性(仅限于NetTcpBinding和NetNamedPipeBinding...当使用创建的ChannelFactory创建服务代理的时候,抛出如图1所示的InvalidOperationException异常。...比如说,同样对于上面定义的IBankingService服务契约(TransactionFlow),但是使用默认的WS2007HttpBinding(默认情况下TransactionFlow是关闭的),

69560

WCF配置文件与文件下载之坎坷路

两者由于功能的不同,在配置文件的使用上也略有不同。 WCF的服务端配置 服务端的配置文件主要包括endpoint、binding、behavior的配置。...binding和address信息是客户端必须知道的,否则无法调用该服务。...然而,如果需要指定服务在执行方面的相关特性,就必须定义服务的behavior。在WCF中,定义behavior就可以设置服务的运行时属性,甚至于通过自定义behavior插入一些自定义类型。...服务的基地址与终结点相对地址可以通过编码的方式,在创建ServiceHost对象在构造函数中指定。...费了半天劲原来是自己的粗心大意,唉,真想把自己杀了……     在编写配置中当然还出现了各种各样无法八门的问题,都是因为配置没有写对的原因,这也给我一个教训,编写代码一定不能粗心大意,不然都是血的代价…

1.1K70
您找到你想要的搜索结果了吗?
是的
没有找到

消息的保护等级

从这个意义上讲,消息保护级别属于契约的一部分,所以基于消息安全级别的编程体现在契约的定义中。...而对于出现异常返回给客户端的错误消息(Fault Message),我们依然需要加以保护。...定义消息保护级别的六个特性分别位于如下图所示的层次结构的四个层次中。低层次可以继承离它最近的高层次的消息保护级别。...举个具体的例子,如果通过ServiceContractAttribute特性在服务契约级别将保护级别设置为Sign,该服务契约所有的操作、操作的错误契约,以及操作使用到的消息契约的默认的保护级别都变成Sign...NetNamedPipeBinding基于Transport安全的TcpTransportSecurity和NamedPipeTransportSecurity类型中,都具有ProtectionLevel属性用于进行消息保护级别的显式设置

851110

消息的保护等级

表示消息保护级别的ProtectionLevel类型是一个枚举,所以它肯定有一个默认值。这个默认值就是None,也就是说当你没有显式地指定契约具有采用那么保护级别的时候,默认值就是None。...如果你足够细心,你应该会发现:在上面介绍的定义消息保护级别的特性中,除了具有一个可读可写的ProtectionLevel属性之外,还具有一个只读的HasProtectionLevel属性,该属性表示你是否对消息保护级别进行了...WCF就是根据ContractDescription的这两个属性决定最终采用怎样的消息保护级别的。...在使用的绑定不支持WS-Addressing的情况下(比如BasicHttpBinding),它会选择所有操作中等级最高的那个作为所有操作的保护级别。...比如说对于如下定义的服务契约ICalculator,在使用BasicHttpBinding的情况下,两个操作采用的保护级别都是EncryptAndSign。

1.2K80

学会WCF之试错法——数据传输

假如是一个文本文件,接口参数是Stream,那么服务端使用StreamReader或StreamWrite,不指定编码,服务运行在win7 及更新的操作系统上,默认的编码方式为Unicode,如果文本文件含义中文...若换成流传输模式(客户端不使用流模式,很奇怪的测试,不过依然通过) 服务端配置变为: 通过上述测试,发现: 1)当客户端配置不正确或服务端配置不正确,异常可在客户端捕获,但捕获的异常信息相同,即客户端与服务端因同一类参数配置不正确所引发的异常信息一样,无法通过异常信息分辨出是由于客户端配置不正确还是由于服务端配置不正确引起的...2)一般地,对于使用basicHttpBinding的服务,当由于配置不正确,抛出异常,可以通过捕获的异常查看是哪个参数配置不正确,但是使用netTcpBinding的服务则无法通过客户端捕获的异常分辨是哪个参数配置的不正确

83560

WCF中的Binding模型之六(完结篇):从绑定元素认识系统预定义绑定

为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法: 1: static void ListAllBindingElements...在下面的代码中,通过MessageEncoding属性将编码方式指定为:WSMessageEncoding.Mtom。...一样,WsHttpBinding定义了类型为System.ServiceModel.WSMessageEncoding枚举类型的MessageEncoding属性,有两种WSMessageEncoding...而对于双工通信来说,由于客户端满足这样要求,所以从服务端回调客户端的传输安全是无法确保的。...ListAllBindingElements(binding); 7: } 8: } 实际上,如果采用消息安全模式,SymmetricSecurityBindingElement将会添加进来实现基于消息级别的签名

901100

快速入门系列--WCF--06并发限流、可靠会话和队列服务

此外,当将服务行为的ReleaseServiceInstanceOnTransactionComplete属性设置为true,其同步模式必须是Single,因为不能在其他请求还在处理中释放实例。...此外,可以通过设置UserSynchronizationContext属性为false来禁止并发操作。...方式 诠释 设置MaxTransferWindowSize 用于指示传输窗口可以保存多少信息,默认为8条 有效使用网络 如果网络延迟大,可以考虑增大传输窗口,已达到提升网络使用率的目的 满负荷运行服务...死信队列:存放限定时间内无法投递信息 报表队列:是公有队列,存储路由跟踪的报表信息 子队列:是一种消息容器,针对消息队列的一个常见操作是将消息从一个队列转移到另一个,其典型应用包括:有序递交,可以将乱序的消息暂时放在子队列中...,排序后有序提交;毒性队列,当频繁出错,可以将其暂存在相应的子队列中以使其他消息得到及时处理。

98070

快速入门系列--WCF--07传输安全、授权与审核

其不足是:依赖于集体的传输协议;只能提供点到点的安全,即客户端直接连接到服务端的场景,如果需要增加消息路由的中间节点,也无法使用了;如果选择该模型,意味着需要在传输层解决对客户端的认证,但相应方案较少。...> 15 16 Tip:可以通过设置message的协商属性来决定是否需要协商。...在服务引用或使用SvcUtil.exe导入元数据,会将服务身份标识自动写入配置中,如下所示。...19 20 21 消息保护,这部分保证消息的一致性和机密性,在WCF中,通过消息保护级别的概念来设置...此外,为了减少多次认证的开销,还有一个关于安全会话的概念,通过配置Binding->security->message中的establishSecurityContext属性来实现,可以使多次消息交换使用同一个会话信道

81290

社区 正式发布了跨平台的 CoreWCF 0.2.0

birojnayak )启用基于角色的授权 在具有 ldap 组/角色查找支持的 Linux 上为 NetTcp 启用 Windows 身份验证 ( @birojnayak ) 添加了对 NetTcp 和 BasicHttpBinding...IP 地址 ( @ovebastiansen ) 公开 MessageParameterAttribute 并增加了 System.ServiceModel 等效项的兼容性(@g7ed6e) 暴露了 BasicHttpBinding.Security...属性(@josellm) 启用通过 DI 注入 ServiceBehaviorAttribute ( @mconnew ) Bug修复 修复了 ChannelHandler 中导致某些请求停止的竞争条件...(@BradBarnich) 修复了 HTTP.SYS(仅限 http)和 IIS(@mconnew)中的托管 修复了在使用 InstanceContextMode.Single ( @mconnew...)对 IDisposable DI 注入的 Singleton 调用 Dispose 已知的问题 双工合同尚未生效 使用 HTTP.SYS HTTPS 不起作用,因为我们需要添加 BasicHttpsBinding

64340

系统上线后WCF服务最近经常死掉的原因分析总结

前言     最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录、页面出现错误等异常,后来发现是由于WCF服务时不时的就死掉了。...得到的初步解决方案如下:   1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问   2、增加默认的连接数,系统默认的链接数比较小   3、提供同一个WCF服务的不同实例 1、在Web...端调用WCF服务使用后,未释放未关闭导致新的链接无法访问   首先保证客户端每次建立的连接在使用完成后进行关闭。..." closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow...从而造成了,在使用HttpWebRequset 或者 WebClient 利用多线程的方式,访问某个网站,经常出现 连接被异常关闭 的错误,大大降低了效率。 这个限制的值,是可以自己设置或配置的。

99941

玩转AI新声态-哼歌曲背后的秘密

而哼歌曲作为一种便捷的音乐识别方式,受到了越来越多人的喜爱。本文将为您揭秘哼歌曲背后的原理,以及音乐识别技术的发展历程和应用。...研究者们开始利用这些技术对音乐进行特征提取和分类,大大提高了音乐识别的准确率。以至于现在除了音乐软件外,例如微信的主流APP也引入了哼歌曲功能为什么通过哼歌就能识别出来曲目?...其实哼歌曲主要归功于音频信号处理和机器学习技术:1、音频信号处理:当用户在音乐软件中哼歌,软件首先会捕捉到这段音频信号。...这些特征向量能够描述音频的声学属性,如音高、节奏、音色等。2、机器学习算法:音乐软件通常会使用机器学习算法来训练一个模型,使其能够识别不同歌曲的特征。...最后,为了提高曲的准确性,音乐软件还可能利用用户的交互来优化结果。例如,当软件返回多个候选歌曲,用户可以选择最符合自己记忆的那一首,从而帮助软件在未来更准确地识别类似的歌曲。

9410

「形色」专访:爆款识花软件的炼成之路

如果不是对植物有所研究的小伙伴,在分辨如上图这种特征相似的花,往往会出现错误,而这时,就凸显了花软件的作用。...有人提出这样一种看法,「形色识别的准确度比较高是因为前期训练数据比较多,而微软花识别率太低是因为训练数据少,但他们的算法相对来说比较优秀。」...,数量的上限大约在 500 种,超过这个数量级,系统的工作量和数据库的承载能力都无法实现。...形色表示,在某种程度上,计算机可以看到很多人眼无法辨识的特征。...现在,形色 App 已经入驻上百万植物专家和植物爱好者,当系统碰到实在无法别的植物,用户可以直接上传到鉴定区,植物专家和爱好者会在几分钟内给出他们的答案。

2.2K40

下一代听歌曲技术——从信号处理到深度学习

怎么衡量一款听歌曲效果的好坏?什么样的听歌曲才是好的系统?QQ音乐的听歌曲到底效果怎样呢?来看看用户的反馈。 用户的期望可以总结为曲库全、识别准、速度快、灵敏度高以及旋律识别的模糊性。...即便是更短的片段时长,QQ音乐识别的精准率仍然保持在100%,尽管在更短的情况召回率降低,但在一定程度上也能提升用户体验。 使用经典听歌曲系统,无结果中的样本中,翻唱歌曲占60%甚至更多。...可以看到对一些检索库中不存在的翻奏例子或者翻唱的例子,经典听歌曲系统无法识别。 从19年开始翻唱、改编歌曲呈爆发性增长。其中的原因我们也不言而喻。因此我们迫切需要进行技术更新。...这个时候使用歌声ASR检索更为方便。随着深度神经网络的发展,ASR发展也十分迅速。天琴实验室训练了一个针对歌声的语音识别系统,使用数万小的歌声数据进行训练,实时率在0.3以内,字错误率15%左右。...当听歌曲没有结果,该系统就会启用。 图中的是一些听歌曲的入口,有Android桌面控件、鸿蒙hap、长按快捷方式和跨应用识别等。相信很多大家已经非常熟悉了。

1.8K50

基于信息理论的机器学习-中科院自动化所胡包钢研究员教程分享03(附pdf下载)

▌概述 ---- 本次tutorial的目的是,1.介绍信息学习理论与模式识别的基本概念与原理;2.揭示最新的理论研究进展;3.从机器学习与人工智能的研究中启发思索。...思考为什么M2与M3无法区分,列为同序B?“元准则”可以理解为是期待底层准则要尽量可以包容的特征。Meta3是对Meta2的进一步期待要求。 ?...由于其中有些NI不满足度量的规定属性(如对称性),我们称题目为“指标”而非“度量”。 ? 定理1:NI(T;Y)=1分别对应完全正确分类,或包含误差的特定分类。...当p1<pc,小类一个拒的“信息代价”低于大类一个误差的的“信息代价” 当p1>pc,小类一个拒的“信息代价”高于大类一个误差的的“信息代价” 另两个曲线产生的排序不发生变化 ?...本章在拒决策中从“误差类别”与“拒类别”同时考察的角度展开研究。这也是来源于应用中的问题。由于常规分类评价指标已经无法适用于拒结果评价,我们对24个信息论指标进行系统性考察。

1.1K70

在 .NET Core 上使用 dotnet-svcutil.xmlserializer

它为客户端应用程序中由 WCF 服务协定使用的且可由 XmlSerializer 序列化的类型预生成 C# 序列化代码。 当序列化或反序列化这些类型的对象,这会提高 XML 序列化的启动性能。...入门 在 .NET Core 控制台应用程序中使用 dotnet-svcutil.xmlserializer: 在 .NET Framework 中使用默认模板“WCF 服务应用程序”创建一个名为“MyWCFService...在服务方法上添加 [XmlSerializerFormat] 属性,如下所示: [ServiceContract] public interface IService1 { [XmlSerializerFormat...class Program { static void Main(string[] args) { var myBinding = new BasicHttpBinding...如果该工具无法生成程序集,将在生成输出中看到警告。 例如,通过在浏览器中运行 http://localhost:2561/Service1.svc 来启动 WCF 服务。

55240

一文读懂面向对象(OOP)

/方法,可以将这些属性/方法抽象出来,放在一个父类中来定义,所有的子类都不需要再定义这些属性/方法,只需要继承(extends)父类即可。...继承使用细节与注意事项 子类继承了父类所有的属性和方法,只是私有的属性不能直接访问,需要通过公共方法进行访问。...调用父类的构造器 (分工明确, 父类属性由父类初始化,子类的属性由子类初始化) 当子类中有和父类中的成员(属性和方法)重名,为了访问父类的成员,必须通过super。.../** * 局部成员 * @author 公众号:编程堂 */ public void test(){ //局部成员变量 public int age;//编译无法通过...否则,子类就无法继承实现抽象方法。

67420
领券