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
Estas utilizando hebras? si asi es pues revisa esta parte del codigo ya que po lo que leo "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", es donde presenta problemas
saludos
mira, yo tambien uso mysqlconnector.net porque me interesa, y tambien he tenido problemillas, pero mas que por culpa de usar mysql, por usar visual studio ;D ya que tambien peta cuando le da la gana.
dime si estas haciendo un programa con asp.net
si es asi, revisa la configuracion del global.asax
ese driver funciona correctamente si no lo haces por algún error nuestro te recomiendoponer el fragmento de codigo