【问题标题】:"Failed to enumerate SSL bindings" error code 234“无法枚举 SSL 绑定”错误代码 234
【发布时间】:2014-03-18 12:47:59
【问题描述】:

有人知道如何解决这个问题吗?

在 PowerShell 中键入以下命令时进行复制。

dir iis:\sslbindings

我遇到了this page on Microsoft TechNet,它没有解决问题。

编辑

调用命令时出现错误

未能枚举 SSL 绑定

显然是由于注册表损坏?

【问题讨论】:

  • 该命令需要 PowerShell 中的“import-module WebAdministration”。

标签: iis powershell ssl binding


【解决方案1】:

就我而言,当我在注册表中同时拥有 SslCertStoreName 和 DefaultSslCtlStoreName 时出现错误。我删除了 DefaultSslCtlStoreName 并且错误消失了一段时间。出于某种原因,DefaultSslCtlStoreName 再次在注册表中创建,我又遇到了错误。所以我写了一个简单的powershell脚本来删除它。

这是我的构建脚本中的一部分。

function CleanupSslBindings() 
{
    $sslBindingsPath = 'hklm:\SYSTEM\CurrentControlSet\services\HTTP\Parameters\SslBindingInfo\'
    $registryItems = Get-ChildItem -Path $sslBindingsPath |
        Where-Object -FilterScript { ($_.Property -eq 'DefaultSslCtlStoreName')}

    If ($registryItems.Count -gt 0) {
        ForEach ($item in $registryItems) {
            $item | Remove-ItemProperty -Name DefaultSslCtlStoreName
            Write-Host "Deleted DefaultSslCtlStoreName in " $item.Name
        }
    } Else {
        Write-Host "No DefaultSslCtlStoreName found. The SSL Bindings registry is clean."
    }
}

【讨论】:

  • 感谢您的解决方案!当我尝试使用 powershell 自动设置 IIS 时,我在我的机器上遇到了上述奇怪的问题,这解决了它。再次感谢。
【解决方案2】:

就我而言,我构建了作为 Windows 服务托管的 WCF 服务。当我这样做时,我显然不知道(并且仍然不知道)如何分配诸如 appid 之类的东西(当您 netsh http show sslcert 时会注意到),以及其他突然出现的项目......包括与此错误相关的项目.

基本上,我阅读了 OP 所做的同一页:https://social.technet.microsoft.com/Forums/windowsserver/en-US/87b1252d-a6a0-4251-bbb6-38e104a8c07a/enumerating-iissslbindings-gives-failure-on-one-machine-works-on-another?forum=winserverpowershell

...并使用 regedit,转到密钥:HKLM\System\Currentcontrolset\services\http\parameters\sslbindinginfo

当我执行上面的 netsh 命令时,我看到了所有相同的条目。但是,首先列出了我的 wcf 服务,然后是我的 IIS 站点。我的 wcf 服务都没有 SSLCertStoreName 密钥(只有 IIS 站点有密钥)。根据文章的解释,第一个条目需要具有该注册表项(我认为这是一个错误),我执行了以下 PowerShell 命令:

Try
{
    Get-ChildItem IIS:\SslBindings
}
Catch
{
    $1stentry = Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\services\HTTP\Parameters\SslBindingInfo | Select-Object -First 1
    $1stentry | New-ItemProperty -Name "SslCertStoreName" -Value "MY"
    Get-ChildItem IIS:\SslBindings
}

此代码对我有用。 那篇文章帮助我了解了这个 234 错误代码的根本原因,是由于未正确安装我的 WCF 服务而造成的假定自我伤害。 YMMV。希望这会有所帮助。

【讨论】:

    【解决方案3】:

    抱歉耽搁了,但我用以下脚本解决了这个问题(见下文)。出于某种奇怪的原因(我不知道为什么),有些东西在我的注册表中添加了两个条目,删除这些条目后问题就消失了。当我将我的注册表与另一台没有此问题的机器进行比较时,我发现了这一点,并找到了罪魁祸首。

    Remove-ItemProperty -Path "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\SslBindingInfo\" -Name "[::1]:26143" -ErrorAction SilentlyContinue
    Remove-ItemProperty -Path "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters\SslBindingInfo" -Name "127.0.0.1:26143" -ErrorAction SilentlyContinue
    
    echo "Done."
    

    @Bewc 我认为您在其中有所作为,尽管我认为它影响的不仅仅是 WCF 服务。我们有一个 powershell 脚本,可以在机器上构建和部署网站(我知道这听起来很疯狂)。我不知道是谁或什么创建了这些条目,但可能是 IIS 中的一些后台进程?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 2011-11-29
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多