当使用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()发布于 2017-09-14 00:07:40
失败的bindingInformation值是*:443:格式的-意味着没有主机头信息。
在这种情况下,SNI标志是非法标志。SNI只能在指定敌机时使用。
要发现这个错误(事后看来很明显),诀窍是尝试镜像UI中应用的设置。UI具有验证功能,这有助于显示您正在尝试的非法行为。
https://stackoverflow.com/questions/46208552
复制相似问题