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>
<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
/// <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
扫一扫加作者微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网