Ответ 1
Попробуйте следующее:
appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"
Но ваша команда тоже правильная. Перечислите все сайты и убедитесь, что вы используете один из них:
appcmd list site
Я хочу добавить привязку к сайту с помощью appcmd. Но когда я пытаюсь выполнить следующую команду, я получаю сообщение об ошибке:
appcmd set site /site.name:"My site name" /+bindings.[protocol='https',bindingInformation='*:443:sub.mydomain.com']
Ошибка:
ERROR ( message:Cannot find SITE object with identifier "bindingInformation='*:443:sub.mydomain.com']". )
Я проверил, существует ли сайт и что он делает. Что я делаю неправильно?
Попробуйте следующее:
appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"
Но ваша команда тоже правильная. Перечислите все сайты и убедитесь, что вы используете один из них:
appcmd list site
Если вы используете PowerShell, вам необходимо окружить параметр привязки двойными кавычками, чтобы PowerShell не интерпретировал одиночные кавычки, прежде чем команда будет отправлена в appcmd.
./appcmd set site /site.name: contoso /+"bindings.[protocol='https',bindingInformation='*:443:']"
источник: http://technet.microsoft.com/en-us/library/cc731692(v=ws.10).aspx
Я столкнулся с проблемой в Powershell с двоеточиями в привязках. Конкатенация их решила проблему.
[string] $cmd = "$Env:windir\SysWOW64\inetsrv\APPCMD.exe"
$response = invoke-expression "$cmd add site /name:""$SiteName"" /id:$ID /+""bindings.[protocol='$Protocol',bindingInformation='$IP"+":$Port"+":']"" /physicalPath:""$Path"""
Вам нужно запустить команду как администратор.
Я никогда не мог сделать эту работу с подстановочным сертификатом для *.mydomain.com с тем, что, как я думал, было довольно дружелюбным именем: "mydomain.com plus wildcard". Я бы выполнил приведенные выше команды, перешел в IIS и посмотрел на привязки, и он будет там, но без выбранного сертификата. При выборе сертификата удалено имя хоста и отключите его, чтобы я не мог его изменить.
Я, наконец, получил его, чтобы сработать, изменив дружественное имя подстановочного сертификата на формат, ожидаемый IIS ( "*.mydomain.com" ) и добавив его обычно через интерфейс IIS, не знаю, будут ли выполняться вышеуказанные команды appcmd. Мораль этой истории заключается в том, чтобы дать подстановочные сертификаты стандартное дружественное имя.
Я создал пакетный файл для этого:
@echo off
set /p sitename="Enter the site Name (as displayed in IIS): " %=%
set /p siteurl="Enter the site Host Header(the site url): " %=%
set /p siteip="Enter the site IP Address (ip address or *): " %=%
set /p siteprotocol="Enter the site Protocol (http, https, etc): " %=%
set /p siteport="Enter the site Port (80, 443): " %=%
appcmd set site /site.name:"%sitename%" /+bindings.[protocol='%siteprotocol%',bindingInformation='%siteip%:%siteport%:%siteurl%']
pause