FIX アプリケーションが ADO.NET 2.0 のアプリケーションで同時に複数の SqlConnection.Open メソッドまたは OracleConnection.Open メソッドを複数のスレッドからを呼び出すとエラー メッセージ:"IndexOutOfRangeException"

現象

SqlConnection.Openの複数のメソッドを呼び出すアプリケーションがあるかどうかまたは
Microsoft ADO.NET 2.0 で同時に複数のスレッドからOracleConnection.Openメソッドを次のエラー メッセージが表示ことがあります。
System.IndexOutOfRangeException: インデックスが配列の範囲外でした。
さらに、ダンプ ファイルは、SQL Server ログ フォルダーに生成されます。

解決策

修正プログラムの情報

サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題のみを修正するものです。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次の次 Microsoft.NET Framework 2.0 service pack のリリースを待つことを勧めします。

この問題を解決するには、修正プログラムを入手するのには、Microsoft カスタマー サポート サービスに問い合わせてください。マイクロソフト カスタマー サポート サービスの電話番号とサポートのコストに関する情報の一覧については、次のマイクロソフト Web サイトを参照してください。注: 特別な場合では、まれに通常サポート コールの発生に料金 Microsoft Support 担当者は、特定の更新で問題が解決されると判断した。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。

必要条件

この修正プログラムを適用するには、インストールされている.NET Framework 2.0 が必要です。

再起動の必要性

この修正プログラムの適用後にコンピュータを再起動する必要はありません。

修正プログラムの置き換えに関する情報

この修正プログラムによって他の修正プログラムが置き換わることはありません。

ファイル情報

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
.NET Framework 2.0 では、x86 エディション
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.18132,998,27205-Feb-200804:49x86
System.data.oracleclient.dll2.0.50727.1813484,35205-Feb-200804:49x86
.NET Framework 2.0 では、x64 エディション
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.18103,113,47214-Jan-200823:36x64
System.data.dll2.0.50727.18132,998,27205-Feb-200804:49x86
System.data.oracleclient.dll2.0.50727.1810499,71214-Jan-200823:36x64
System.data.oracleclient.dll2.0.50727.1813484,35205-Feb-200804:49x86
.NET Framework 2.0 では、ia-64 エディション
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.18133,208,19205-Feb-200801:25IA-64
System.data.dll2.0.50727.18132,998,27205-Feb-200804:49x86
System.data.oracleclient.dll2.0.50727.1813503,80805-Feb-200801:25IA-64
System.data.oracleclient.dll2.0.50727.1813484,35205-Feb-200804:49x86

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

詳細

この問題が発生した場合、次のコール スタックの 1 つが生成されます。

コール スタック 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()

プロパティ

文書番号:948176 - 最終更新日: 2017/02/02 - リビジョン: 1

フィードバック