“无法枚举SSL绑定”错误代码234

时间:2014-02-18 16:14:22

标签: iis powershell ssl binding

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

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

dir iis:\sslbindings

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

修改

调用命令时,我收到错误

  

无法枚举SSL绑定

显然是由于注册表损坏了?

3 个答案:

答案 0 :(得分:6)

就我而言,当我在注册表中同时拥有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."
    }
}

答案 1 :(得分:3)

就我而言,我构建了作为Windows服务托管的WCF服务。当我这样做时,我显然不知道(现在仍然不知道)如何分配像appid这样的东西(当你netsh http显示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

...并使用注册表,转到密钥: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服务而造成的自我伤害。因人而异。希望这会有所帮助。

答案 2 :(得分:0)

对延迟表示歉意但我通过以下脚本解决了问题(见下文)。出于某些奇怪的原因(我不知道为什么),我的注册表中添加了两个条目,删除后这些问题就消失了。当我将我的注册表与另一台没有遇到此问题并找到罪魁祸首的机器进行比较时,我想到了这一点。

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中有一些后台进程?