Microsoft KB Archive/887126

= Setting the SqlCommand.CommandTimeout property to zero may cause a General Network Error =

Article ID: 887126

Article Last Modified on 10/15/2004

-

APPLIES TO


 * Microsoft .NET Framework 1.1
 * Microsoft .NET Framework 1.0

-





SYMPTOMS
The CommandTimeout property of the SqlCommand class is set to zero. Zero is an infinite timeout. When a response from an instance of Microsoft SQL Server is broken into more than one network packet, the connection will be incorrectly closed, and a General Network Error will occur.



RESOLUTION
To resolve this problem, use one of the following methods:  Use a large value such as 7200 for the CommandTimeout property. Apply the hotfix in the following Microsoft Knowledge Base article:

823679 FIX: Multiple fixes for SQL Server .NET Data Provider



Note This problem occurs in both the Microsoft .NET Framework 1.0 and the Microsoft .NET Framework 1.1. However, the hotfix is only available for the .NET Framework 1.1.



STATUS
This behavior is by design.



MORE INFORMATION
You can detect this problem in a network monitor trace if you run a query, and then you retrieve more than one packet of data at a time. By default, the SqlClient packet size is 8 kilobytes (KB). However, in the network monitor trace the packet may appear as multiple physical network packets that total 8 KB when added together. After you receive the first packet, the connection is closed with an ACK+FIN packet. SQL Server will continue to send data afterward. The behavior causes a TCP/IP connection reset and causes the error.

