使用Microsoft.Web.Administration
使用以下代码向IIS添加绑定时:
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);
我得到了一个例外
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()
答案 0 :(得分:0)
失败的bindingInformation
值格式为*:443:
- 表示没有主机标头信息。
在这种情况下,SNI
标志是非法标志。 SNI只能在指定主机头时使用。
发现这个(后见之明)错误的诀窍是尝试镜像在UI中应用的设置。用户界面具有验证功能,有助于显示您正在尝试的非法操作。