Cita:
Empezado por rci
Por cierto, en este caso concreto, cogéis alguno de los mensajes del error (poco entendibles) para mostrar al usuario o creáis uno propio indicando que ha fallado el servidor remoto, por ejemplo.
Muchas Gracias
|
Pues te puedo dar alguna idea. Cuando recibes un error al enviar unmensaje se abren tres escenarios.
Escenario 1, no has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat no se ha enterado de nada, fallo en comunicación, no hay Internet, endponit inccesible, ausencia de certificado, certificado no apto para autenticación sobre línea segura...) y el error lo devuelve el protocolo de comunicaciones. Los posibles errores que te vas a encontrar son
"System.ServiceModel.EndpointNotFoundException", "System.ServiceModel.CommunicationException", "System.Security.Cryptography.CryptographicException", "System.ServiceModel.ProtocolException" . Debes proceder informando del error y volviendo a reenviar el mensaje.
Escenario 2, has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat se ha enterado de que le ha llegado algo pero no entiende qué es, debido a que el modelo tiene algún tipo de fallo en su construcción, falta algún nodo, o el certificado que estás utilizando no lo reconoce. El típico error que recibirás es
"System.ServiceModel.FaultException". En este caso, el reenvío no va a solucionar nada, debes informar al cliente que tiene que ponerse en contacto con su Servicio Técnico.
Escenario 3, has llegado al servidor de la Aeat, la propiedad "RespuestaLinea" del objeto Respuesta tiene contenido. El servicio te ha aceptado el mensaje con sus Registros de Facturación indicando en cada línea el estado de cada registro, Aceptado, Aceptado con Errores, Incorrecto. Informarás al cliente de lo que hay que subsanar o rectificar