使用ANT为站点创建https绑定的命令

时间:2016-01-13 12:52:20

标签: iis ant ssl-certificate appcmd staf

我想用ant执行此操作(命令正在工作,如果直接在cmd中过去)

%windir%\system32\inetsrv\Appcmd set site /site.name:"Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:']

但它不起作用。似乎问题是我没有逃避某些事情(我怀疑是/ + [符号])。我试过这个,但它仍然不起作用:

C:\Windows\system32\inetsrv\Appcmd set site /site.name:"Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:'] 

这是我的构建脚本中的一段

<!-- Create the actual https binding for the Site -->
    <staf location="local"
        service="PROCESS"
        request="START COMMAND netsh http add sslcert ipport=0.0.0.0:443 certstorename=MY certhash=${local.machine.certhash} appid={${local.machine.keycontainer}} WAIT STDERRTOSTDOUT RETURNSTDOUT"
        throwBuildException="STAF ERROR" /> 

    <staf location="local"
        service="PROCESS"
        request="START  COMMAND %windir%\system32\inetsrv\Appcmd set site /site.name:&quot;Default Web Site&quot; /+bindings.[protocol=&apos;https&apos;,bindingInformation=&apos;*:443:&apos;] WAIT STDERRTOSTDOUT RETURNSTDOUT"
        throwBuildException="STAF ERROR" /> 

我从执行中得到的错误是:

 RC=0, Result=
 [staf] {
 [staf]   Return Code: 87
 [staf]   Key        : <None>
 [staf]   Files      : [
 [staf]     {
 [staf]       Return Code: 0
 [staf]       Data       : Failed to process input: The parameter 'Site' must begin with a / or - (HRESULT=80070057).

1 个答案:

答案 0 :(得分:0)

正确转义的命令是:

<staf location="local"
                service="PROCESS"
                request="START COMMAND &quot;C:\\Windows\\system32\\inetsrv\\Appcmd set site /site.name:\&quot;Default Web Site\&quot; /+bindings.[protocol=&apos;https&apos;,bindingInformation=&apos;*:443:&apos;]&quot; WAIT STDERRTOSTDOUT RETURNSTDOUT"
                throwBuildException="STAF ERROR" />