Excepción de anticipación de E/S al acceder a MySQL
No se si te sonará 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 más difícil arreglarlo.
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 más difícil arreglarlo.
Respuesta de andresr16
1
1 respuesta más de otro experto
Respuesta de denciso
1