Enviar un Documento Xml transformado a byte[] en base 64

15/12/2012 - 12:44 por taniabl | Informe spam
¡ Hola !
Estoy realizando facturación electrónica para la empresa(C# vs. 2010) y debo enviar el documento Xml firmado a un Web Service java convertido a byte[] base64 pero no me funciona estoy utilizando lo siguiente

string myLRuta = @"C:\e-bizness\SRIFC26_001_001_000000049.XML";
XmlDocument myLXmlDocFirmado= new XmlDocument();
myLXmlDocFirmado.Load(myLRuta);


byte[] bytes = null;
var Output = Encoding.UTF8.GetBytes(myLXmlDocFirmado.OuterXml);

string myLXmlBase64 = Convert.ToBase64String(Output);
bytes = Convert.FromBase64String(myLXmlBase64);


ec.gob.sri.celcer.RecepcionComprobantesService myFServicio = new ec.gob.sri.celcer.RecepcionComprobantesService();

ec.gob.sri.celcer.respuestaSolicitud xmlRespuesta = (ec.gob.sri.celcer.respuestaSolicitud)myFServicio.validarComprobante(bytes);

El webservice debe devolverme el documento autorizado pero me devuelve con estado Devuelta y no me retorna los mensajes de error que arrojo la validación, en la institución que me autoriza me dicen que posiblemente estoy enviando mal convertido o que estoy poniendo caracteres que dañan el archivo y es por eso que me falla el envio
Hay algun otro método que pueda utilizar para esta transformación??
Adicionalmente probe lo siguiente pero el resultado fue el mismo
byte[] bytes = null;
using (MemoryStream memoryStream = new MemoryStream())
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(XmlDocument));
xmlSerializer.Serialize(memoryStream, myLXmlDocFirmado);
//bytes = memoryStream.GetBuffer();
bytes = memoryStream.ToArray();
string myLValor64 = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray()) ;
bytes = Convert.FromBase64String(myLValor64);
}
 

Preguntas similares