Buenas tardes, nuestra aplicación está desarrollada en c# .Net y para el envío a las diputaciones forales utilizamos
System.Net.HttpWebRequest
Nuestra idea es que las facturas se vayan enviando desde un servicio desatendido, que esté funcionando en el servidor.
Ya lo tenemos implementado y dentro del entorno de desarrollo funciona correctamente.
El problema lo tenemos cuando lo ejecutamos como servicio, que arranca con el usuario del sistema local (System).
En ese caso las diputaciones nos contestan con una excepción (cada una con un mensaje distinto) pero que indica que no ha encontrado el certificado de cliente para el envío.
Hemos visto que
HttpWebRequest para envar a TicketBAI debe tener el certificado en el almacén de certificados del usuario (instalado en el navegador) y además debemos indicar que certificado del almacén se utilizará para el envio añadiendolo en la propiedad ClientCertificates del HttpWebRequest. Por ejemplo:
Código:
var httpWebRequest = HttpWebRequest.CreateHttp(url);
httpWebRequest.AllowAutoRedirect = true;
httpWebRequest.ClientCertificates.Add(this.certificate);
httpWebRequest.Method = "POST";
…
Pues bien, parece que cuando ejecutamos como servicio de windows, como arranca con el usuario system, el
HttpWebRequest no tiene acceso al almacén de certificados de los otros usuarios, por ejemplo el usuario con que se inicia sesión en el servidor y donde instalamos el certificado en el navegador.
Alguien que trabaje con .Net y utilice un servicio de windows para el envío nos puede echar un cable por favor?
Muchas gracias!!