我想使用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']". )
我检查了网站是否存在,确实存在。我做错了什么?
答案 0 :(得分:14)
如果您正在使用PowerShell,则必须使用双引号括起bindings参数,以便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
答案 1 :(得分:10)
试试这个:
appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"
但你的命令也是正确的。列出所有网站并确保您使用其中一个:
appcmd list site
答案 2 :(得分:0)
我在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"""
答案 3 :(得分:0)
您需要以管理员身份运行命令。
答案 4 :(得分:0)
我无法使用* .mydomain.com的通配符证书进行此工作,我认为这是一个非常友好的名称:" mydomain.com加上通配符"。我运行上面的命令,进入IIS并查看绑定,它会在那里,但没有选择证书。选择证书将删除主机名并禁用它,因此我无法更改它。
我终于通过将通配符证书的友好名称更改为IIS(" * .mydomain.com")所期望的格式并通过IIS界面正常添加来实现它的工作,想法是否上述appcmd命令可行。这个故事的寓意是给通配符证书提供标准形式的友好名称。
答案 5 :(得分:0)
我创建了一个批处理文件来实现:
@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