Inicio > .Net > denciso > Excepcion de anticipacion de E/S al acceder a MySQL

Excepcion de anticipacion de E/S al acceder a MySQL

Experto:
Usuario: Anónimo Fecha: 13/03/2008
Valoración: (5,00 sobre 5) Categoría: .Net
27/02/2008
Usuario
Hola, 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 mas difícil arreglarlo. Gracias por tu tiempo.
Saludos
27/02/2008
mmob, experto respondiendo en .Net
Experto
Algo no típico en la tabla que estas intentando actualizar, tipos de campo, etcetera...

Saludos
David Enciso
11/03/2008
Usuario
Hola David, ante todo perdona porque he estado out esta temporada y sobre todo darte las gracias porque siempre me contestas rápidamente con valiosa información e ideas.
En las tablas solo hay columnas de texto, numéricas y fechas. Le he estado dando vueltas y ¿te parece que podría ser el conector de MySQL? Utilizo el mysql-connector-net-5.1.4, tal vez tu conozcas otro, podría probarlo y ver si se trata de eso (también probé el ByteFX.MySqlClient.76, pero tenía sus propias "rarezas").
Bueno, ya sabes que cualquier idea es bien venida y las tuyas suelen ayudarme mucho.
Un saludo y gracias.
MMOB
12/03/2008
mmob, experto respondiendo en .Net
Experto
Pues solamente que uses las herramientas que están en la misma página de MySQL.com

Saludos
David Enciso

PD. Gracias por los comentarios...
13/03/2008
Usuario
Hola David, eso mismo haré y a esperar a ver que pasa porque como son errores que ocurren tan pocas veces tendré que realizar un sinfín de pruebas.
Muchas gracias y un saludo
MMOB
Más opciones
Enlaces patrocinados