我正在尝试使用Silverlight 4和轮询双工启用流式响应,但是当发送到客户端的更新速率大于maxOutputDelay时,我会遇到奇怪的行为,这导致不发送更新.
例如,maxOutputDelay为7秒,每10秒发送一次更新,一切正常.但是如果我有一个1秒的maxOutputDelay,并且每500毫秒发送一次更新,则更新只是位于服务器端而不会被发送到客户端.
我的理解是设置transferMode ="StreamedResponse"应该立即将更新发送给客户端,但这似乎不起作用.
这是Web服务的Web.config中的绑定:
此配置基于本文中的信息:http://blogs.msdn.com/b/silverlightws/archive/2010/06/25/http-duplex-improvements-silverlight-4.aspx
谢谢.
我正在使用Silverlight客户端和.NET 3.5 WCF服务的WCF双工服务.
我的方案是:在双工推送OneWay操作从服务器到客户端如果在客户端通知处理程序中发生异常,则通道会出现静默故障,因此任何进一步的双工调用都会从服务器超时并失败.(如此处所解释的单向操作和例外)
我的问题:
FaultContracta 装饰,OneWay OperationContract在客户端包装异常并防止通道故障吗?有人知道以双面打印的方式.所以我有问题,因为我有摘要文件,其中有很多陈述.我必须在双面打印,问题是打印它,因为有时语句有奇数页,最后一页打印在第一页下一个语句.
有人有任何想法.谢谢!
好吧,我知道在双工合同中服务可以向客户发送消息,但我想知道什么时候真的很有用.
我有一个通用的应用程序,发送请求到服务从数据库中获取数据,插入数据......等等.另外,我需要在数据库中存储大约40MB的文件,所以我需要一个良好的性能.出于这个原因,我想使用net.tcp绑定传输模式流,但问题是net.tcp双工服务不能使用流传输模式.
所以我觉得我有一些选择.
1.-研究我是否真的需要这种应用的双工合同.例如,在聊天应用程序中,它更具有双重合同的意义,因为服务器可能需要在联系人连接时通知客户端......等等.但是在访问数据库的公共客户端中,是必要的双份合同?什么样的操作可能需要双工合同?
2.-其他选项不是双工合同,而是在服务器中实现无双工合同以及客户端中的其他单一合同,因此当客户端连接到服务时,服务会收到连接到服务的所需信息.客户服务.但是,这是避免双工合同的好方法吗?
3.-真的对我的应用程序我需要tcp而不是允许流传输模式的双工HTTP?在性能方面,tcp优于HTTP的优势是什么?
谢谢.
在普通的WCF请求/回复合同中,您可以使用以下内容读取邮件标头:
OperationContract.Current.IncomingMessageHeaders
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚的是如何在双工合同的回调方面做到这一点.回调实现内部OperationContext.Current是null.
编辑2013年4月5日:我正在使用基于net.tcp的自定义绑定,但有很多自定义.例如,使用协议缓冲区消息编码而不是Xml.还有一些自定义安全性.
如何防止双工回调通道在空闲期后关闭?
我在 NetTcpBinding 上有一个主要工作的双工 WCF 设置,即客户端可以与服务器交谈,服务器可以回调到客户端。
此外,我有一个可靠的会话,这样客户端在默认的不活动期后不会丢失与服务器的连接,通过客户端和服务器上的以下配置实现:
var binding = new NetTcpBinding(SecurityMode.None);
// Need to prevent channel being closed after inactivity
// i.e. need to prevent the exception: This channel can no longer be used to send messages as the output session was auto-closed due to a server-initiated shutdown. Either disable auto-close by setting the DispatchRuntime.AutomaticInputSessionShutdown to false, or consider modifying the shutdown protocol …Run Code Online (Sandbox Code Playgroud) 在WCF中,合同可以切换到流模式,以传输大型消息.
在阅读和测试后,在我看来,流模式不能用于双工通道(具有OneWay调用和回调接口的通道).
是这样吗?双工和流媒体不能互相使用吗?或者有办法吗?
(我正在尝试将大文件上传到服务并使用回调来报告此进度)
我有一个特定的服务,其中特定的功能需要比其他功能更长的时间,有时他们可能需要几秒钟才能返回.为了防止在发生这种情况时阻止客户端的UI,首选解决方案是什么:
哪种解决方案更好,特别是在互操作性受到青睐但不是绝对必要时,并且您认为哪种解决方案更快(更清洁)的实施和维护?
我已经按照本教程构建了聊天应用程序.当我尝试添加我的服务的引用时,我收到以下错误:
合同需要Duplex,但Binding'BasicHttpBinding'不支持它,或者没有正确配置以支持它.
我的web.config如下:
<extensions>
<bindingExtensions>
<add name="pollingDuplex" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</bindingExtensions>
</extensions>
<bindings>
<pollingDuplex>
<binding name="chatPollingDuplex" duplexMode="MultipleMessagesPerPoll"/>
</pollingDuplex>
</bindings>
<services>
<service name="PrototypeSite.ChatService">
<endpoint address="" binding="pollingDuplex" bindingConfiguration="chatPollingDuplex" contract="PrototypeSite.ChatService" />
<endpoint address="mex" binding="wsDualHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
Run Code Online (Sandbox Code Playgroud) 我想让客户端通过服务器相互查询而没有延迟(=没有轮询间隔).
示例:服务器S,客户端A和B.
客户端A想要请求客户端B.客户端A将向服务器S发出请求,没有问题.然后,服务器S需要能够请求客户端B,但如何在没有轮询的情况下执行此操作?
所有node.js/APE(用于PHP)技术都是为Web设计的,但我没有使用Web服务器.Java是否有接近推送技术/框架的东西,而不是网络?
我真的更喜欢不需要每个客户端使用自己的保留端口的解决方案(例如,我不希望每个客户端最终使用1个WebService)
注意:所有客户端都在同一台计算机上.