12

我想使用 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']". )

我检查了该站点是否存在并且确实存在。我究竟做错了什么?

4

6 回答 6

15

如果您使用的是 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

于 2012-09-06T14:30:05.960 回答
10

尝试这个:

appcmd set site "My site name" /bindings:"https://sub.mydomain.com:443"

但是你的命令也是正确的。列出所有网站并确保您正在使用其中一个:

appcmd list site
于 2012-03-09T00:12:19.577 回答
0

您需要以管理员身份运行命令。

于 2014-07-20T11:12:41.670 回答
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"""
于 2013-12-13T18:51:36.677 回答
0

我永远无法使用 *.mydomain.com 的通配符证书来完成这项工作,我认为这是一个非常友好的名称:“mydomain.com 加通配符”。我会运行上面的命令,进入 IIS 并查看绑定,它会在那里,但没有选择证书。选择证书将删除主机名并禁用它,因此我无法更改它。

我终于通过将通配符证书的友好名称更改为 IIS 预期的格式(“*.mydomain.com”)并通过 IIS 界面正常添加它来使其工作,不知道上面的 appcmd 命令是否可以工作。这个故事的寓意是给通配符证书一个标准形式的友好名称。

于 2015-12-22T22:41:25.937 回答
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
于 2016-04-21T18:54:46.910 回答