IIS 7.x, ajout d’un site compatible HTTPS: SiteCollection.Add (chaîne, chaîne, chaîne, octet ), surcharge

J’ai besoin d’append par programme un site IIS 7.x et je me suis retrouvé bloqué lorsqu’il a été créé avec une liaison HTTPS / SSL par défaut, surcharge SiteCollection.Add (chaîne, chaîne, chaîne, octet []) .

Donner https:*:80:test.localhost https:*:443:test.localhost tant que bindingInformation lève une exception ArgumentException avec ce message: La liaison HTTPS spécifiée n’est pas valide.

Quel est le problème dans cette information contraignante?

Je vous remercie.

EDIT : J’utilise l’assemblage Microsoft.Web.Administration.

Voici ce que j’ai fait pour créer un site https et cela a fonctionné. Je saute des parties de code ici, bien sûr.

 using Microsoft.Web.Administration ... using(var manager = new ServerManager()) { // variables are set in advance... var site = manager.Sites.Add(siteName, siteFolder, siteConfig.Port); var store = new X509Store(StoreName.AuthRoot, StoreLocation.LocalMachine); store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite); // certHash is my certificatee's hash, byte[] var binding = site.Bindings.Add("*:443:", certHash, store.Name); binding.Protocol = "https"; store.Close(); site.ApplicationDefaults.EnabledProtocols = "http,https"; manager.CommitChanges(); } 

UPD: le certificate est créé à partir d’un fichier pfx de la manière suivante:

 // get certificatee from the file ssortingng pfx = Directory.GetFiles(folder, "*.pfx", SearchOption.AllDirectories).FirstOrDefault(); var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite); var certificatee = new X509Certificate2(pfx, certPassword, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); store.Add(certificatee); store.Close(); certHash = certificatee.GetCertHash(); 

Autant que je BindingInformation est sans protocole:

La valeur de cette propriété est une chaîne délimitée par des deux-points qui inclut l’adresse IP, le port et le nom d’hôte de la liaison.

Source: http://msdn.microsoft.com/en-us/library/microsoft.web.administration.binding.bindinginformation%28v=vs.90%29.aspx

Il y a aussi une surcharge de qui prend un paramètre BindingProtocol:

 public Site Add( ssortingng name, ssortingng bindingProtocol, ssortingng bindingInformation, ssortingng physicalPath ) 

Source: http://msdn.microsoft.com/en-us/library/bb359364%28v=vs.90%29.aspx

Peut-être devriez-vous utiliser l’object Binding proposé par l’instance de site tel quel offre davantage de parameters que l’instance de SiteCollection.