Impossible de créer un canal sécurisé SSL / TLS du plug-in au service Web

J’ai un problème avec mon plugin lorsque j’essaie d’utiliser une méthode de référence de service. J’ai un client qui envoie des parameters à un service Web , qui les envoie ensuite à mon plugin , puis je dois les prendre et les envoyer à un service Web à l’ aide d’une méthode de référence Web . Pour accéder au service Web, je dois utiliser un certificate qui a été chanté par la société propriétaire du dernier service Web. Le code que j’utilise est le suivant:

BasicHttpsBinding binding = new BasicHttpsBinding { Security = new BasicHttpsSecurity { Transport = new HttpTransportSecurity { ClientCredentialType = HttpClientCredentialType.Certificate } } }; UploaderServiceClient client = new UploaderServiceClient(binding, new EndpointAddress(args.EndPoint)); client.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocaMachine, StoreName.My, X509FindType.FindBySerialNumber, args.SerialNum); client.approveTransportDocument(appC, FileDesc); 

Après avoir utilisé ce code, je reçois une exception:

 The request was aborted: Could not create SSL/TLS secure channel. 

Le dernier service Web fonctionne bien et le certificate est valide car si j’utilise le même code sur un formulaire, cela fonctionne bien. EDIT: J’ajoute l’exception que j’ai, peut-être que ça va aider:

System.ServiceModel.Security.SecurityNegotiationException: Impossible d’établir un canal sécurisé pour SSL / TLS avec l’autorité ‘imas-ws.vmi.lt’. —> System.Net.WebException: la demande a été abandonnée: impossible de créer le canal sécurisé SSL / TLS. sur System.Net.HttpWebRequest.GetResponse () sur System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply (délai d’attente de TimeSpan) — Fin de la trace de la trace d’exception interne —

Trace de stack de serveur: à System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, demande HttpWebRequest, HttpAbortReason abortReason)
dans le journal System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel. , TimeSpan Timeout) à System.ServiceModel.Channels.ServiceChannel.Call (action Chaîne, Boolean oneway, opération ProxyOperationRuntime, Object [] ins, Object [], à expiration de TimeSpan) , Opération ProxyOperationRuntime) à System.ServiceModel.Channels.ServiceChannelProxy.Invoke (message IMessage)

Exception retransmise en [0]: à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage demande, IMessage retMsg) à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData). UploaderService.submitTransportDocument (TransportDocument LocalTransportDocument, FileDescription ContextInformation, AdditionalContext AdditionalContext) à Eur_Iz.Ie.UploaderServiceClient.submitTransportDocument (FR), ligne 3295 à Eur_Iz.ClientPlugin.DataHandling (arguments IServicePluginArgs)

Il peut s’agir d’un certificate client ou d’un certificate de serveur. Il peut s’agir de problèmes de confiance (certificates d’autorité de certificateion manquants sur le client ou le serveur).

L’activation de la connexion CAPI2 dans Eventlog peut vous expliquer pourquoi il Could not create SSL/TLS secure channel. Le journal CAPI2 est désactivé par défaut. Lorsque vous l’activez, essayez de refaire la demande. Il devrait y avoir des événements d’erreur qui contiendront des informations utiles sur la cause. Journal des événements CAPI2

J’ai trouvé la réponse au problème, c’est que je devais autoriser le service Web à utiliser le certificate. Voici le lien qui m’a aidé: https://serverfault.com/questions/131046/how-to-grant-iis-7-5-access-to-a-certificatee-in-certificatee-store/132791#132791