在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 -

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 -相关的知识,希望对你有一定的参考价值。

  作为总公司IT部门,自然承担着各个分公司的运维技术支持工作,由于公司的性质,分公司经常负责维护这各家官老爷的服务器,同时这些服务器也作为和官老爷数据之间的连接。。。。。。此处省略一万字。

  今天分公司就有个负责人发过来一段服务器的报错信息,大致如下“

 FireF|y゛ 2016/5/23 15:36:19
日志名称:          Application
来源:            XXXXX 

日期:            2016/5/23 11:47:30
事件 ID:         0
任务类别:          无
级别:            错误
关键字:           经典
用户:            暂缺
计算机:           WIN-H48V8MB5TAA
说明:
Timestamp: 2016/5/23 3:47:30
Message: 从MQ:.\private$\dsddataexport   中获取报文写入 SQLSERVER 数据库:XXXXX 时出现异常 ,具体的异常信息为:在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)该服务线程已经停止! 配置信息为:<?xml version="1.0"?><Rule xmlns:xsi="技术分享http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="技术分享http://www.w3.org/2001/XMLSchema"><MQPath>.\private$\dsddataexport</MQPath><Enabled>true</Enabled><Model>UPDATE</Model><DBType>SQLSERVER</DBType><IP>技术分享10.XX.XX.X </IP><UserName>PDC_USER</UserName><Password>PDC_USER</Password><DataBaseName>XXXXX </DataBaseName></Rule>
Category: General
Priority: 5
EventId: 0
Severity: Error
Title:
Machine: WIN-H48V
Application Domain: XXXXX .exe
Process Id: 21216
Process Name: E:\XXXXX \DSD\DSD\XXXXX \XXXXX .exe
Win32 Thread Id: 20052
Thread Name: 
Extended Properties: 
事件 Xml:
<Event xmlns="技术分享http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="XXXXX " />
    <EventID Qualifiers="0">0</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2016-05-23T03:47:30.000Z" />
    <EventRecordID>99</EventRecordID>
    <Channel>Application</Channel>
    <Computer>WIN-H48V</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Timestamp: 2016/5/23 3:47:30
Message: 从MQ:.\private$\dsddataexport   中获取报文写入 SQLSERVER 数据库:XXXXX  时出现异常 ,具体的异常信息为:在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)该服务线程已经停止! 配置信息为:&lt;?xml version="1.0"?&gt;&lt;Rule xmlns:xsi="技术分享http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="技术分享http://www.w3.org/2001/XMLSchema"&gt;&lt;MQPath&gt;.\private$\dsddataexport&lt;/MQPath&gt;&lt;Enabled&gt;true&lt;/Enabled&gt;&lt;Model&gt;UPDATE&lt;/Model&gt;&lt;DBType&gt;SQLSERVER&lt;/DBType&gt;&lt;IP&gt;技术分享10.74.230.75&lt;/IP&gt;&lt;UserName&gt;PDC_USER&lt;/UserName&gt;&lt;Password&gt;PDC_USER&lt;/Password&gt;&lt;DataBaseName&gt;XXXXX &lt;/DataBaseName&gt;&lt;/Rule&gt;
Category: General
Priority: 5
EventId: 0
Severity: Error
Title:
Machine: WIN-H48V
Application Domain: XXXXX .exe
Process Id: 21216
Process Name: E:\XXXXX \DSD\DSD\XXXXX \XXXXX .exe
Win32 Thread Id: 20052
Thread Name: 
Extended Properties: </Data>
  </EventData>
</Event>


 简单看了下报错信息,本以为是传输的问题,但是检查了网络检查了消息队列,并未发现任何异常,以及任何错误信息,看来和传输应该没有关系,


 再仔细看了下服务,该服务并不是windows自带服务,而是公司为通过消息队列传输的数据写入到sql2005数据库里面,同时也检查了sql的相关信息,也未发现错误,仔细查看报错信息发现:“远程主机强迫关闭了一个现有的连接。)该服务线程已经停止! ”

这句话是重点所在,我们也可以理解为,当在建立连接时,发现建立连接超过了,无法建立连接,那么应用程式主动关闭了一个连接,


由于该服务由.net编写而成,仔细查阅了下.net数据连接池的概念,发现.net默认最大的连接数为100,且默认为ture状态,那么如果在编写代码的时候没有定义该连接池,长时间使用后连接池没有释放,就会产生该问题,


 需要在代码中加入

pooling=false

or Max Pool Size的值,

接下来的事情就是让分公司人员去找对应的开发人员,修改其代码进行定义,OK!



本文出自 “低调的IT民工” 博客,请务必保留此出处http://vicent.blog.51cto.com/287372/1782559

以上是关于在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 -的主要内容,如果未能解决你的问题,请参考以下文章

在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 -

SQL Server相关知识和经验的碎片化记录

从服务器接收结果时发生传输级错误。 “管道已经结束了。”

SqlException - 从服务器接收结果时发生传输级错误

如何在向服务器发送请求时添加设备信息?

axios.get() 在向后端发送请求时正在组合 url。