Buongiorno a tutti,
sto eseguendo i primi test per l’invio della fattura elettronica, ma purtroppo al primo tentativo mi sono arenato a causa di un generico errore interno.
Nel dettaglio il codice che utilizzo è il seguente:
static void Main(string[] args) {
FatturaPA_SdIRiceviFile.SdIRiceviFileClient srv = new FatturaPA_SdIRiceviFile.SdIRiceviFileClient();
FatturaPA_SdIRiceviFile.RiceviFileRequest srvReq = new FatturaPA_SdIRiceviFile.RiceviFileRequest();
FatturaPA_SdIRiceviFile.RiceviFileResponse srvResp = new FatturaPA_SdIRiceviFile.RiceviFileResponse();
EndpointAddress address = new EndpointAddress(new Uri(“https://testservizi.fatturapa.it/ricevi_file”));
Binding binding = CreateMultiFactorAuthenticationBinding();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
X509Certificate2 certificate = new X509Certificate2(@“percorso certificato pfx”, “…”);
var factory = new ChannelFactory<FatturaPA_SdIRiceviFile.SdIRiceviFileChannel>(binding, address);
factory.Credentials.ClientCertificate.Certificate = certificate;
factory.Endpoint.Contract.ProtectionLevel = ProtectionLevel.Sign;
factory.Credentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(@“percorso certificato testservizi.fatturapa.it.cer”);
factory.Credentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication {
CertificateValidationMode = X509CertificateValidationMode.None,
RevocationMode = X509RevocationMode.NoCheck
};
FatturaPA_SdIRiceviFile.SdIRiceviFileChannel channel = factory.CreateChannel();
try {
srvReq.fileSdIAccoglienza = new FatturaPA_SdIRiceviFile.fileSdIBase_Type();
byte[] f = File.ReadAllBytes(@“percorso file xml firmato p7m”);
srvReq.fileSdIAccoglienza.File = Convert.FromBase64String(Convert.ToBase64String(f, 0, f.Length));
srvReq.fileSdIAccoglienza.NomeFile = “nome file firmato”;
srvResp = channel.RiceviFile(srvReq);
} catch (Exception exc) {
Console.WriteLine(exc.ToString());
}
Console.ReadLine();
}
L’errore avviene in corrispondenza della chiamata channel.RiceviFile(srvReq), nel dettaglio l’errore è il seguente:
System.ServiceModel.FaultException: Internal Error
Server stack trace:
in System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
in System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
in System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
in System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
in System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
in TestFatturaPA.FatturaPA_SdIRiceviFile.SdIRiceviFile.RiceviFile(RiceviFileRequest request)
in TestFatturaPA.Program.Main(String[] args)
Qualcuno ha suggerimento in merito?