Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/11/2005, 17:19
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
EStoy teniendo problemas al intentar escribir los bytes que recibo desde el cliente en un archivo binario en el servidor.
Estos son los procedimientos que utilizo:

PrivateFunction GetBytesFromBinaryFile(ByVal F AsString) AsByte()

Dim FileStream AsNew FileStream(F, FileMode.Open)

Dim BinaryReader AsNew BinaryReader(FileStream)

Dim BytesRead() AsByte = BinaryReader.ReadBytes(BinaryReader.BaseStream.Length)

BinaryReader.Close()

FileStream.Close()

DeleteCreatedBinaryFile(F)

Return BytesRead

EndFunction


PrivateFunction GetBinaryFileFromBytes(ByVal F AsString, ByVal Bytes() AsByte) As FileStream

Dim FileStream AsNew FileStream(F, FileMode.Create)

Dim BinaryWriter AsNew BinaryWriter(FileStream)

BinaryWriter.Write(Bytes, 0, Bytes.Length)

FileStream.Close()

BinaryWriter.Close()

Return FileStream

EndFunction


El primer procedimiento lo utilizo para extraer los bytes de un archivo binario. Este archivo binario es el que guarda el objeto serializado, y estos bytes devueltos por la función son los que van a ser enviados mediante el stream.
El segundo procedimiento me devuelve un objeto FileStream. Tiene como argumento la ruta del archivo que se va a crear y los bytes que se deben escribir en este archivo. Estos bytes son los que recibe el servidor por parte del cliente (que son los bytes sacados de la primera función y que fueron enviados). Entonces, al devolver esta función un FileStream, la utilizo directamente como agumento para deserializar el objeto de esta forma:

Dim MyObject As Object = CType(BinaryFormatter.Deserialize(GetBinaryFileFromByte s("RUTADELARCHIVO","BYTESRECIBIDOS")), Object)


Pero al ejecutar esta linea me salta error, más precisamente este:

Excepción no controlada del tipo 'System.ArgumentException' en mscorlib.dll
Información adicional: No se puede leer la secuencia.

Y se produce justo al intentar ejecutar esta linea correspondiente a la función GetBinaryFileFromBytes():

BinaryWriter.Write(Bytes, 0, Bytes.Length)


Estoy haciendo lo correcto?, ven algún error?

Muchas gracias por su ayuda.

Saludos!.



__________________
Add, never Remove