2012-03-08 9 views
12

Chcę dodać powiązanie do witryny za pomocą aplikacji appcmd. Ale gdy próbuję następujące polecenie pojawia się błąd:Błąd przy użyciu apletu appcmd w celu dodania wiązania ssl

appcmd set site /site.name:"My site name" /+bindings.[protocol='https',bindingInformation='*:443:sub.mydomain.com'] 

Błąd:

ERROR (message:Cannot find SITE object with identifier "bindingInformation='*:443:sub.mydomain.com']".) 

sprawdziłem czy witryna istnieje i to robi. Co ja robię źle?

Odpowiedz

10

Spróbuj tego:

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

Ale twój rozkaz jest poprawny, jak również. Lista wszystkich stron internetowych i upewnij się, że korzystasz z jednego z nich:

appcmd list site 
+0

Gdzie dit masz składni bez '/ +' lub '/ -' od? Czy możesz podać link do dokumentacji? –

14

Jeśli używasz PowerShell, trzeba otoczyć parametr powiązań z cudzysłów tak że PowerShell nie interpretuje apostrofów przed poleceniem jest wysyłane do appcmd.

./appcmd set site /site.name: contoso /+"bindings.[protocol='https',bindingInformation='*:443:']" 

źródło: http://technet.microsoft.com/en-us/library/cc731692(v=ws.10).aspx

+0

Dziękujemy! Wystąpił ból głowy, próbując zrobić to w PowerShell. :) –

0

wpadłem na problem w PowerShell z dwukropkiem w oprawach. Łączenie ich rozwiązało problem.

[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""" 
0

Musisz uruchomić swoje polecenie jako administrator.

0

Nigdy nie udało mi się wykonać tej pracy z certyfikatem wieloznacznym dla * .mydomain.com z nazwą, która uważam za całkiem przyjazną: "mydomain.com plus symbol wieloznaczny". Uruchomiłbym powyższe polecenia, przejdę do IIS i zajrzę do wiązań, a będzie tam, ale bez wybranego certyfikatu. Wybranie certyfikatu spowodowałoby usunięcie nazwy hosta i wyłączenie go, więc nie mogłem go zmienić.

W końcu udało mi się to, zmieniając przyjazną nazwę certyfikatu wieloznacznego na format oczekiwany przez IIS ("* .mydomain.com") i dodając go normalnie poprzez interfejs IIS, nie wiedząc, czy powyższe polecenia appcmd zadziałają . Morał tej historii polega na podawaniu certyfikatów wieloznacznych w standardowej formie przyjaznej nazwie.

0

stworzyłem plik wsadowy, aby to osiągnąć:

@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 
Powiązane problemy