ข้อความแสดงข้อผิดพลาดการแก้ไข: เมื่อโปรแกรมประยุกต์ที่เรียกวิธี SqlConnection.Open หรือวิธี OracleConnection.Open ผ่านหลายเธรดหลายในเวลาเดียวกันในโปรแกรมประยุกต์ ADO.NET 2.0: "IndexOutOfRangeException"

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 948176 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

ถ้าคุณมีโปรแกรมประยุกต์ที่เรียกหลายSqlConnection.Openวิธี หรือOracleConnection.Openวิธีการคำนวณผ่านเธรดหลายในเวลาเดียวกันใน Microsoft ADO.NET 2.0 คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
System.IndexOutOfRangeException: ดัชนีที่มีอยู่นอกขอบเขตของอาร์เรย์
นอกจากนี้ สร้างแฟ้มการถ่ายโอนข้อมูลใน SQL ในโฟลเดอร์แฟ้มบันทึกของเซิร์ฟเวอร์

การแก้ไข

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว แต่มีเป้าหมายเพียงเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น ใช้ hotfix นี้เฉพาะกับระบบต่างๆ ที่พบปัญหานี้เท่านั้น hotfix นี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับอย่างจากจากปัญหานี้ เราขอแนะนำให้ คุณรอรุ่นถัดไปถัดไป Microsoft .NET Framework 2.0 service pack ที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้

เมื่อต้องการแก้ไขปัญหานี้ทันที ให้ติดต่อฝ่ายบริการสนับสนุนผลิตภัณฑ์ของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับการจ่ายสนับสนุน แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://support.microsoft.com/contactus/?ws=support
หมายเหตุ:ในกรณีพิเศษ อาจมีการยกเว้นค่าใช้จ่ายสำหรับการสนับสนุนทางโทรศัพท์หากผู้เชี่ยวชาญในการให้การสนับสนุนของ Microsoft ระบุว่าการปรับปรุงเฉพาะจะแก้ปัญหาของคุณได้ ค่าใช้จ่ายปกติจะใช้กับการให้การสนับสนุนสำหรับคำตอบเพิ่มเติมและเรื่องที่ไม่สามารถจัดเป็นคำถามเกี่ยวกับการอัพเดทเฉพาะ

ข้อกำหนดเบื้องต้น

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี.NET Framework 2.0 ติดตั้ง

ข้อกำหนดในการเริ่มต้นระบบคอมพิวเตอร์ใหม่

คุณไม่จำเป็นต้องเริ่มต้นคอมพิวเตอร์ใหม่หลังจากใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการทดแทนโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนฮอตฟิกซ์อื่น ๆ

ข้อมูลแฟ้ม

โปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์แฟ้ม (หรือแอตทริบิวต์แฟ้มหลังจากนี้) ซึ่งแสดงในตารางต่อไปนี้ วันที่และเวลาของแฟ้มเหล่านี้จะปรากฏในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ข้อมูลจะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้โซนเวลาแท็บในนั้นวันที่และเวลาสินค้าในการควบคุมแผง
.NET Framework 2.0, x รุ่น 86
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
System.data.dll2.0.50727.18132,998,27205 2008 Feb04:49x86
System.data.oracleclient.dll2.0.50727.1813484,35205 2008 Feb04:49x86
.NET Framework 2.0, x รุ่น 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
System.data.dll2.0.50727.18103,113,47214 2008 แจ23:36x64
System.data.dll2.0.50727.18132,998,27205 2008 Feb04:49x86
System.data.oracleclient.dll2.0.50727.1810499,71214 2008 แจ23:36x64
System.data.oracleclient.dll2.0.50727.1813484,35205 2008 Feb04:49x86
.NET Framework 2.0 รุ่น IA 64
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดแฟ้มวันที่เวลาแพลทฟอร์ม
System.data.dll2.0.50727.18133,208,19205 2008 Feb01:25IA-64
System.data.dll2.0.50727.18132,998,27205 2008 Feb04:49x86
System.data.oracleclient.dll2.0.50727.1813503,80805 2008 Feb01:25IA-64
System.data.oracleclient.dll2.0.50727.1813484,35205 2008 Feb04:49x86

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"

ข้อมูลเพิ่มเติม

เมื่อปัญหานี้เกิดขึ้น กองสายต่อไปนี้อย่างใดอย่างหนึ่งถูกสร้างขึ้น

เรียกสแตกที่ 1

(System.IndexOutOfRangeException: Index was outside the bounds of the array. 
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
at System.Data.SqlClient.SqlConnection.Open() 

เรียกสแตก 2

(System.IndexOutOfRangeException: Index was outside the bounds of the array. 
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
at System.Data.SqlClient.SqlConnection.Open()

เรียกสแตก 3

(System.IndexOutOfRangeException: Index was outside the bounds of the array. 
at SNINativeMethodWrapper.SNISecGenClientContext(SafeHandle pConnectionObject, Byte[] inBuff, UInt32 receivedLength, Byte[] OutBuff, UInt32& sendLength, Byte[] serverUserName) 
at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[] sendBuff, UInt32& sendLength) 
at System.Data.SqlClient.TdsParser.TdsLogin(SqlLogin rec) 
at System.Data.SqlClient.SqlInternalConnectionTds.Login(Int64 timerExpire, String newPassword) 
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) 
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) 
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) 
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
at System.Data.SqlClient.SqlConnection.Open() 

เรียกสแตก 4

(System.IndexOutOfRangeException: Index was outside the bounds of the array. 
at SNINativeMethodWrapper.SNIOpenEx(ConsumerInfo consumerInfo, String constring, IntPtr& pConn, Boolean fInitSec, Byte[] sspiBuffer, Byte[] instanceName, Boolean fOverrideCache, Boolean fSync) 
at System.Data.SqlClient.SNIHandle..ctor(ConsumerInfo myInfo, String serverName, Boolean integratedSecurity, Byte[] serverUserName, Byte[]& instanceName, Boolean flushCache, Boolean fSync) 
at System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) 
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) 
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) 
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) 
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
at System.Data.SqlClient.SqlConnection.Open()

คุณสมบัติ

หมายเลขบทความ (Article ID): 948176 - รีวิวครั้งสุดท้าย: 20 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 2.0 IA64 Edition
  • Microsoft .NET Framework 2.0 x64 Edition
Keywords: 
kbautohotfix kbexpertiseinter kbHotfixServer kbqfe kbmt KB948176 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:948176

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com