Hola a todos, a ver si a alguien le suena esta excepción que genera mi programa. La aplicación esta creada en C# 2005 y se accede a una base de datos MySQL utilizando el conector ADO.NET driver for MySQL versión 5.1.4.0
Normalmente funciona de forma correcta, pero de vez en cuando, sin hacer nada especial y al intentar cualquier operación sobre la base de datos genera una excepción con el siguiente mensaje:
Se detectó una posible condición de anticipación de E/S al copiar la memoria. El paquete de E/S no es seguro para subprocesos de forma predeterminada. En las aplicaciones multiproceso se debe tener acceso a la secuencia de forma segura para los subprocesos, como un contenedor seguro para subprocesos devuelto por los métodos sincronizados de TextReader o TextWriter. Esto también se aplica a clases como StreamWriter y StreamReader.
Si le pido el nombre del objeto o aplicación que generó el error me dice que: mscorlib
Y el StackTrace de una de estas excepciones (este en concreto al intentar un UPDATE sobre una tabla) es el siguiente:
en System.Buffer.InternalBlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
en System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
en MySql.Data.MySqlClient.MySqlStream.Read(Byte[] buffer, Int32 offset, Int32 count)
en MySql.Data.MySqlClient.MySqlStream.ReadByte()
en MySql.Data.MySqlClient.MySqlStream.SkipBytes(Int32 len)
en MySql.Data.MySqlClient.MySqlStream.OpenPacket()
en MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
en MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
en MySql.Data.MySqlClient.MySqlDataReader.NextResult()
en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
en MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
en MySql.Data.MySqlClient.MySqlConnection.BeginTransaction(IsolationLevel iso)
en Gestion.Source.ModeloBD.ActualizarRegistro(Registro registro) C:\Proyectos\My SQL\Gestion\Gestion\Source\ModeloBD.cs:línea 458
Además, al no ocurrir siempre es mas difícil arreglarlo. Gracias por vuestro tiempo.
Saludos
Normalmente funciona de forma correcta, pero de vez en cuando, sin hacer nada especial y al intentar cualquier operación sobre la base de datos genera una excepción con el siguiente mensaje:
Se detectó una posible condición de anticipación de E/S al copiar la memoria. El paquete de E/S no es seguro para subprocesos de forma predeterminada. En las aplicaciones multiproceso se debe tener acceso a la secuencia de forma segura para los subprocesos, como un contenedor seguro para subprocesos devuelto por los métodos sincronizados de TextReader o TextWriter. Esto también se aplica a clases como StreamWriter y StreamReader.
Si le pido el nombre del objeto o aplicación que generó el error me dice que: mscorlib
Y el StackTrace de una de estas excepciones (este en concreto al intentar un UPDATE sobre una tabla) es el siguiente:
en System.Buffer.InternalBlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
en System.IO.BufferedStream.Read(Byte[] array, Int32 offset, Int32 count)
en MySql.Data.MySqlClient.MySqlStream.Read(Byte[] buffer, Int32 offset, Int32 count)
en MySql.Data.MySqlClient.MySqlStream.ReadByte()
en MySql.Data.MySqlClient.MySqlStream.SkipBytes(Int32 len)
en MySql.Data.MySqlClient.MySqlStream.OpenPacket()
en MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
en MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
en MySql.Data.MySqlClient.MySqlDataReader.NextResult()
en MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
en MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
en MySql.Data.MySqlClient.MySqlConnection.BeginTransaction(IsolationLevel iso)
en Gestion.Source.ModeloBD.ActualizarRegistro(Registro registro) C:\Proyectos\My SQL\Gestion\Gestion\Source\ModeloBD.cs:línea 458
Además, al no ocurrir siempre es mas difícil arreglarlo. Gracias por vuestro tiempo.
Saludos