WCF开发框架 - NetTcpBinding配置web.config与C#代码配置
作者:C/S框架网|www.csframewo  发布日期:2021/07/08 10:26:16
  WCF开发框架 - NetTcpBinding配置web.config与C#代码配置

WCF开发框架 - NetTcpBinding配置web.config与C#代码配置



NetTcpBinding绑定,web.config配置



XML Code:

<bindings>
<netTcpBinding>
<binding name="NetTcpBinding" closeTimeout="00:01:00"
openTimeout
="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow
="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode
="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
maxBufferSize
="1048576" maxConnections="10" maxReceivedMessageSize="1048576">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength
="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled
="false" />
<security mode="Transport">
<transport clientCredentialType="Transport" protectionLevel="None">
</transport>
<message clientCredentialType="None" />
</security>
</binding>

</netTcpBinding>
</bindings>


//来源:C/S框架网 | www.csframework.com | QQ:23404761





创建NetTcpBinding协议绑定


C# Code:


/// <summary>
/// 创建NetTcpBinding协议绑定
/// </summary>
/// <param name="https"></param>
/// <returns></returns>
public static NetTcpBinding CreateNetTcpBinding(bool https = false)
{
  NetTcpBinding ws
= new NetTcpBinding();
  
  ws.Name
= "NetTcpBinding";
  
  ws.MaxReceivedMessageSize
= 2147483647;//最大接收的消息大小
  
ws.MaxBufferSize = 2147483647;// 从通道接收消息的缓存大小
  
ws.MaxBufferPoolSize = 2147483647;//从通道接收消息的最大缓存数量
  

  ws.CloseTimeout
= new TimeSpan(0, 10, 0);
  ws.OpenTimeout
= new TimeSpan(0, 10, 0);
  ws.SendTimeout
= new TimeSpan(0, 10, 0);
  ws.ReceiveTimeout
= new TimeSpan(0, 10, 0);
  
  ws.HostNameComparisonMode
= HostNameComparisonMode.StrongWildcard;
  ws.PortSharingEnabled
= false;//获取或设置一个值,该值指示是否为采用此绑定配置的连接启用 TCP 端口共享。
  
  
//ws.MaxConnections = 256;//如果修改maxConnections的值,服务会导致不正常,会报端口已经被占用
  
//ws.ListenBacklog = 10;
  

  ws.TransferMode
= TransferMode.Buffered;
  ws.TransactionProtocol
= TransactionProtocol.OleTransactions;
  ws.TransactionFlow
= false;
  
  ws.ReliableSession.Ordered
= true;
  ws.ReliableSession.InactivityTimeout
= new TimeSpan(0, 10, 0);
  
  
//security节点配置 - HTTPS 协议配置
  
if (https)
  {
    ws.Security.Mode
= SecurityMode.Transport;
    ws.Security.Transport.ClientCredentialType
= TcpClientCredentialType.None;
    ws.Security.Transport.ProtectionLevel
= System.Net.Security.ProtectionLevel.None;
    
  }
  
else
  {
    
//security节点配置 - HTTP协议配置
    
ws.Security.Mode = SecurityMode.None;
    ws.Security.Transport.ClientCredentialType
= TcpClientCredentialType.None;
    ws.Security.Transport.ProtectionLevel
= System.Net.Security.ProtectionLevel.None;
  }
  
  System.Xml.XmlDictionaryReaderQuotas rq
= ws.ReaderQuotas;
  rq.MaxArrayLength
= 2147483647;//最大数组长度
  
rq.MaxBytesPerRead = 6553600;//最大每次读取长度
  
rq.MaxDepth = 6553600;// 最大节点深度
  
rq.MaxNameTableCharCount = 6553600;//最大NameTableChar的数量
  
rq.MaxStringContentLength = 2147483647;// 最大内容长度
  

  
return ws;
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇