专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WCF

不支持正在使用的 .Net 组帧方式。有关详细信息,请参阅服务器日志-解决方案

发布时间:2011-06-23 13:50:33 文章来源:www.iduyao.cn 采编人员:星星草
不支持正在使用的 .Net 组帧模式。有关详细信息,请参阅服务器日志--解决方案

问题在于 NetTcpBinding 服务端和客户端配置不一致。

至少  客户端和服务端:安全性、是否启用可靠会话以及传输方式必须一致

主要是传输方式导致 "不支持正在使用的 .Net 组帧模式"。

安全性和是否启用可靠会话不一致 导致错误 " 套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:01:59.9839991”。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。"

 客户端代码配置
1
EndpointAddress ea = new EndpointAddress(url); 2 //安全性 none 是否启用可靠会话 false 3 NetTcpBinding tc = new NetTcpBinding(SecurityMode.None, false) 4 { 5 ReceiveTimeout = new TimeSpan(10, 10, 10), 6 TransferMode = TransferMode.Streamed,///传输方式 7 MaxReceivedMessageSize = 1073741824, 8 SendTimeout = new TimeSpan(0, 2, 0) 9 }; 10 return ChannelFactory<T>.CreateChannel(tc, ea);
服务端代码配置
1
ServiceHost host = ContractDescription.GetContract(typeof(IService1)); 2 //安全性 none 是否启用可靠会话 false 3 NetTcpBinding tc = new NetTcpBinding(SecurityMode.None, false); 4 //tc.MaxReceivedMessageSize = 2147483647; 5 //传输方式 6 tc.TransferMode = TransferMode.Streamed; 7 //tc.SendTimeout = new TimeSpan(10, 10, 0); 8 //tc.ReceiveTimeout = new TimeSpan(0, 2, 10); 9 host.AddServiceEndpoint(iType, tc, string.Concat("net.tcp://localhost:8990/service/"));
 服务端xml 配置
1
<bindings> 2 <netTcpBinding > 3 <binding name="TcpBinding" maxReceivedMessageSize="2147483647" transferMode="Streamed" > 4 <security mode="None"> 5 <transport clientCredentialType="None"/> 6 <message clientCredentialType="None"/> 7 </security> 8 <reliableSession enabled="false"/> 9 <readerQuotas maxDepth="64" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> 10 </binding> 11 </netTcpBinding> 12 </bindings>
//
<security mode="None"> //设置传输 安全性 none
//<reliableSession enabled="false"/> //不启用可靠会话 false
//transferMode 传输方式

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: