Проблема с развертыванием нескольких HTTPS-сайтов на одном хосте в TFS 2015

Я пытаюсь развернуть несколько сайтов на одном хосте под управлением IIS из TFS 2015. Я пытаюсь, чтобы все сайты использовали опцию "Требуется указание имени сервера", чтобы все они могли работать под одним и тем же IP-адресом. (Эта настройка прекрасно работает в IIS, если я все вручную настраиваю - мой вопрос / проблема возникает из-за развертывания из TFS 2015).

ПЕРВЫЙ сайт в цепочке развертывания работает нормально, но любой последующий, похоже, не работает со следующей ошибкой:

System.Exception:  SSL Certificate add failed, Error: 183 Cannot create a file when that file already exists.

У каждого из сайтов, которые я развертываю, есть свой сертификат SSL, и я импортировал их все должным образом в локальный компьютер \ личный магазин.

Снимок экрана определения выпуска с выделенной задачей "Управление IIS Web App" показан ниже.

Любые предложения о том, как устранить эту ошибку в определении выпуска, чтобы я мог выполнить развертывание без ручного вмешательства?

Полагаю, я мог бы попытаться сделать ВСЕ шаги по управлению IIS из PowerShell, но надеялся использовать эти инструменты чуть более полно, вместо того, чтобы запускать новые сценарии для выполнения того, что, похоже, они ДОЛЖНЫ выполнять самостоятельно.

Любое понимание приветствуется.

2 ответа

Решение

У меня все заработало - но мне пришлось в основном исключить конфигурацию привязки из задач WinRM - IIS App Management. Я сохранил все то же самое, но в этих задачах вообще не указывал информацию привязки, а затем добавил сценарий оболочки питания целевого компьютера, который выглядел следующим образом (отпечатки большого пальца и доменные имена изменились):

Import-Module WebAdministration

if ($null -eq (Get-WebBinding | Where-Object {$_.BindingInformation -eq "*:443:iddev.mydomain.com"}))
{
    New-WebBinding -Name "Identity-B2B" -Port 443 -Protocol "https" -HostHeader "iddev.mydomain.com" -SslFlags 1
    New-Item -Path "IIS:\SslBindings\!443!iddev.mydomain.com" -Thumbprint "88E811B7A9417DACAAAAAAAAAA1C36AA0BA238FF1E0F" -SSLFlags 1
}

if ($null -eq (Get-WebBinding | Where-Object {$_.BindingInformation -eq "*:443:iddev.myotherdomain.com"}))
{    
    New-WebBinding -Name "Identity-B2C" -Port 443 -Protocol "https" -HostHeader "iddev.myotherdomain.com" -SslFlags 1
    New-Item -Path "IIS:\SslBindings\!443!iddev.myotherdomain.com" -Thumbprint "BE38195A2BBBBBBBBBBBBBBB1C2AB5762C9" -SSLFlags 1
}

Сообщение об ошибке появится, если вы попытаетесь привязать сертификат к порту, который уже связан с этим или другим сертификатом.

Вы можете попробовать установить разные порты для сайтов.

Вы также можете попробовать добавить шаг (командная строка / шаг Powershell), чтобы удалить существующую привязку перед следующим шагом развертывания, если это не влияет на сайты.

например:

$> netsh http delete sslcert ipport:1.1.1.1:443 

Ссылка ниже статьи для удаления привязки:

Другие вопросы по тегам