WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)

简介: WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)

问题:

  线上正式环境调用WCF服务正常,但是每次使用本地测试环境调用WCF服务时长就是出现:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30” 这个问题,查阅了网上很多资料各种说法的都有,有的说是什么请求站点不在同一个域下,有的说什么应为datatable中有一个属性没有赋值各种答非所问的问题。其实从错误信息中就可以看出来其实就是调用超时了。

解决方案:

在调用wcf的服务端的web.config中配置netTcpBinding这个配置,将receiveTimeout完成接收操作提供的时间间隔设置为:00:05:30即可解决(或者使用默认配置:00:10:00,不配置即可)。

这是我在我的服务端配置的相关参数(仅供大家参考),大家可以根据自己的需求配置:

<netTcpBinding>
    <!--binding:此元素包含标准绑定和自定义绑定的集合-->
    <binding portSharingEnabled="true" receiveTimeout="00:05:30" openTimeout="00:01:00" sendTimeout="00:01:00">
        <!--定义绑定的安全设置,mode="None"禁用安全性--> 
         <security mode="None"/> 
        <!--定义可由采用此绑定配置的终结点进行处理的 SOAP 消息的复杂性约束-->
        <readerQuotas maxDepth="32" maxStringContentLength="65536000" maxArrayLength="65536000" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> 
    </binding> 
</netTcpBinding>

netTcpBinding配置说明

官方详细说明☞

security 的 netTcpBinding☞


特性和元素

下列各节描述了特性、子元素和父元素。

特性

特性

特性 说明
closeTimeout 一个 TimeSpan 值,指定为完成关闭操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
hostNameComparisonMode 指定用于分析 URI 的 HTTP 主机名比较模式。 此属性的类型为 HostNameComparisonMode,指示在对 URI 进行匹配时,是否使用主机名来访问服务。 默认值为 StrongWildcard,表示忽略匹配项中的主机名。
listenBacklog 一个正整数,指定侦听器上等待接受的最大通道数。 超出此限制的连接会被排队,直到连接数低于限制值。 connectionTimeout 属性限制客户端在引发连接异常之前将等待连接的时间。 默认值为 10。
maxBufferPoolSize 一个整数,指定此绑定的最大缓冲池大小。 默认值为 512 * 1024 字节。 Windows Communication Foundation (WCF) 的许多部件使用缓冲区。 每次使用缓冲区时,创建和销毁它们都将占用大量资源,而缓冲区的垃圾回收过程也是如此。 利用缓冲池,可以从缓冲池中获得缓冲区,使用缓冲区,然后在完成工作后将其返回给缓冲池。 这样就避免了创建和销毁缓冲区的系统开销。
maxBufferSize 一个正整数,指定内存中用于存储消息的缓冲区的最大大小(字节)。

如果 transferMode 属性等于 Buffered,则此属性应等于 maxReceivedMessageSize 属性值。

如果 transferMode 属性等于 Streamed,则此属性不能大于 maxReceivedMessageSize 属性值,应当至少为标头的大小。

默认值为 65536。 有关详细信息,请参阅 MaxBufferSize
maxConnections 一个整数,指定服务将创建/接受的最大出站和入站连接数。 传入和传出连接分别根据此属性指定的限制进行计数。

超出此限制的入站连接需要排队,直到连接数低于限制值。

超出此限制的出站连接需要排队,直到连接数低于限制值。

默认值为 10。
maxReceivedMessageSize 一个正整数,指定采用此绑定配置的通道上可以接收的最大消息大小(字节),包括消息头。 如果消息超出此限制,则发送方将收到 SOAP 错误。 接收方将删除该消息,并在跟踪日志中创建事件项。 默认值为 65536。
name 一个包含绑定的配置名称的字符串。 因为此值用作绑定的标识,所以它应该是唯一的。 从 .NET Framework 4 开始,绑定和行为不需要具有名称。 有关默认配置和无值绑定和行为的详细信息,请参阅WCF 服务的简化配置和简化配置。
openTimeout 一个 TimeSpan 值,指定为完成打开操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
portSharingEnabled 一个布尔值,指定是否为此连接启用 TCP 端口共享。 如果此值为 false,则每个绑定都使用自己的独占端口。 此设置只与服务相关,因为客户端不受影响。
receiveTimeout 一个 TimeSpan 值,指定为完成接收操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:10:00。
sendTimeout 一个 TimeSpan 值,指定为完成发送操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
transactionFlow 一个布尔值,指定绑定是否支持流动 WS-Transactions。 默认为 false
transactionProtocol 指定与此绑定一起使用的事务处理协议。 有效值为

-OleTransactions
-WSAtomicTransactionOctober2004

默认值为 OleTransactions。 此属性的类型为 TransactionProtocol
transferMode 一个 TransferMode 值,指定为请求或响应对消息进行缓冲处理还是流式处理。

子元素

子元素

元素 说明
<security> 定义绑定的安全设置。 此元素的类型为 NetTcpSecurityElement
<readerQuotas> 定义可由采用此绑定配置的终结点进行处理的 SOAP 消息的复杂性约束。 此元素的类型为 XmlDictionaryReaderQuotasElement
<reliableSession> 指定是否在通道终结点之间建立可靠会话。

父元素

父元素

元素 说明
<bindings> 此元素包含标准绑定和自定义绑定的集合。
相关文章
|
1月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
163 7
|
1月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
63 9
|
3月前
|
5G 调度 UED
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
5G中的动态频谱共享(DSS):高效利用频谱资源,加速5G网络演进
769 4
|
27天前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
83 4
|
9天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
1月前
|
Java 开发者
JAVA高手必备:URL与URLConnection,解锁网络资源的终极秘籍!
在Java网络编程中,URL和URLConnection是两大关键技术,能够帮助开发者轻松处理网络资源。本文通过两个案例,深入解析了如何使用URL和URLConnection从网站抓取数据和发送POST请求上传数据,助力你成为真正的JAVA高手。
64 11
|
2月前
|
Java
[Java]Socket套接字(网络编程入门)
本文介绍了基于Java Socket实现的一对一和多对多聊天模式。一对一模式通过Server和Client类实现简单的消息收发;多对多模式则通过Server类维护客户端集合,并使用多线程实现实时消息广播。文章旨在帮助读者理解Socket的基本原理和应用。
33 1
|
2月前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
82 1
|
3月前
|
人工智能 监控 5G
5G 网络切片的动态管理:实现灵活高效的网络资源分配
5G 网络切片的动态管理:实现灵活高效的网络资源分配
129 1
|
2月前
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
70 0
下一篇
DataWorks