2017-09-14 3 views
0

Wenn eine Bindung an IIS Microsoft.Web.Administration mit Code wie folgt hinzu:Microsoft.Web.Administration: Wert nicht innerhalb des erwarteten Bereichs

var newBinding = Site.Bindings.CreateElement(); 
newBinding.BindingInformation = bindingInformation; 
var existingSsl = // some code that finds an existing SSL binding to copy off 
var sslFlags = SslFlags.Sni; 
if (existingSsl != null) 
{ 
    newBinding.Protocol = existingSsl.Protocol; 
    newBinding.CertificateHash = existingSsl.CertificateHash; 
    newBinding.CertificateStoreName = existingSsl.CertificateStoreName; 
} 

Site.Bindings.Add(newBinding.BindingInformation, newBinding.CertificateHash, newBinding.CertificateStoreName, sslFlags); 

Ich erhalte eine Ausnahme

System.ArgumentException: Value does not fall within the expected range. 
    at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute() 
    at Microsoft.Web.Administration.ConfigurationMethodInstance.Execute() 
    at Microsoft.Web.Administration.Binding.AddSslCertificate(Byte[] certificateHash, String certificateStoreName) 
    at Microsoft.Web.Administration.BindingManager.BindingTransaction.Commit() 
    at Microsoft.Web.Administration.BindingManager.Save() 
    at Microsoft.Web.Administration.ServerManager.CommitChanges() 

Antwort

0

Die bindingInformation Der Wert, der fehlgeschlagen ist, hatte das Format *:443:. Dies bedeutet, dass keine Host-Headerinformationen vorhanden waren.

In diesem Fall ist das SNI Flag ein illegales Flag. SNI kann nur verwendet werden, wenn ein Hostheader angegeben ist.

Der Trick, diesen (im Nachhinein offensichtlich) Fehler zu finden, bestand darin, die Einstellungen zu spiegeln, die in der Benutzeroberfläche angewendet werden. Die UI hat eine Validierung, die zeigt, welche illegale Sache Sie versuchen.

Verwandte Themen