2012-10-20 17 views
14

Integruję MSDeploy z moim procesem kompilacji i mam problemy z uwierzytelnianiem. Następujące polecenie działa prawidłowo:MSDeploy.exe może łączyć się jako Administrator, ale nie z żadnym innym kontem Windows.

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip 

Jednakże, to nie działa:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip 

I daje błąd:

Error Code: ERROR_USER_NOT_ADMIN 
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ 
rator on '192.168.0.11'. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN. 
Error: The remote server returned an error: (401) Unauthorized. 
Error count: 1. 

mam przestrzegać instrukcji w linku powyżej, i dowolne other docs I could find, które prawie wszystkie mówią to samo:

  1. Założyłem konto o nazwie kpcpublish
  2. dodałem to konto do grupy o nazwie MSDepSvcUsers - Heck, nawet dodał do administratorów
  3. I kliknięciu prawym przyciskiem myszy na stronie i wybranych Deploy-> Konfiguracja Web Deploy Publishing i dodano kpcpublish do listy. Jest napisane:

.

Publish enabled for 'SERVER\kpcpublish' Granted 'SERVER\kpcpublish' 
full control on 'C:\Website' Successfully created settings file 
'C:\Users\Administrator\Desktop\SERVER_kpcpublish_KitchenPC.PublishSettings' 

Nie musi być jakiś krok mi brakuje, ale ja po prostu nie może dowiedzieć się, co może być.

UPDATE:

Korzystanie pełną ścieżkę HTTP dla właściwości computerName, pojawia się błąd:

Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could not connect to the remote computer ("192.168.0.3"). On the remote computer, make sure that Web Deploy is installed and that the required process ("Web Management Service") is started. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DES TINATION_NOT_REACHABLE. Error: Unable to connect to the remote server Error: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection fa iled because connected host has failed to respond 192.168.0.3:8192 Error count: 1.

Sprawdziłem i Web Service Management jest rzeczywiście działa.

Kolejna aktualizacja:

mam całkowicie betonowa system i ustawić go ponownie od zera. Nie zrobiłem nic niezwykłego, właśnie zainstalowałem rolę IIS i sprawdziłem "Zarządzanie usługą" w Narzędziach zarządzania, które są wymagane do uruchomienia WMSVC. Następnie zainstalowałem Web PI i zainstalowałem "Zalecaną konfigurację dla dostawców hostingu", która zainstaluje Web Deploy 3.0. Jednak zauważyłem, że wystąpił błąd podczas instalowania tego (wydaje mi się, że dostałem ten błąd również po raz ostatni). Wygląda to tak:

enter image description here

Ja również dołączone pliki dziennika here.

Potem próbowałem ręcznie zainstalować Web Deploy 3.0, ale jest napisane, że jest już zainstalowany. Następnie pobrałem MSI bezpośrednio z http://www.iis.net/download/webdeploy i uruchomiłem go w trybie "Napraw". Wydaje się, że zadziałało. Zauważyłem również, że usługa WMSVC jest uruchomiona. Wygląda to dobrze.

Mimo to usługa MSDeploy nie będzie się łączyć. Pomyślałem, że to może być jakiś problem z firewallem, więc uruchomiłem go lokalnie. Próbowałem użyć połączenia HTTPS i HTTP do połączenia.HTTPS daje mi błąd, HTTP po prostu wygasza po 2-3 minutach.

HTTPS:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip 
Info: Using ID 'f3a54096-adc4-4f54-9e4f-ad8fde12edb6' for connections to the remote server. 
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED 
More Information: Connected to the remote computer ("staging") using the specified process ("Web Management Service"), but could not verify the server's certifi 
cate. If you trust the server, connect again and allow untrusted certificates. 
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED. 
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. 
Error: The remote certificate is invalid according to the validation procedure. 
Error count: 1. 

HTTP:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=http://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip 
Info: Using ID 'ebee66f0-08e5-4d9d-98ea-0c2e59784895' for connections to the remote server. 
Error: Could not complete the request to remote agent URL 'http://staging:8172/msdeploy.axd'. 
Error: The operation has timed out 
Error count: 1. 
+0

tylko jedna myśl: plik "SERVER_kpcpublish_KitchenPC.PublishSettings" nie powinien być przechowywany gdzieś w folderze wdrażania, a nie na pulpicie? – SearchAndResQ

+0

@Flakes - Nie śledzenie. Na razie próbuję tylko zsynchronizować się z serwera WWW z lokalnym archiwum zip, aby upewnić się, że wszystko działa. Naprawdę nie jestem pewien * co * zrobić z plikiem PublishSettings, myślałem, że to było tak, że nie trzeba wpisywać wszystkich informacji o połączeniu w wierszu poleceń. –

+0

Plik ustawień jest istotny tylko wtedy, gdy używasz go do wprowadzania wartości do plików konfiguracyjnych podczas wdrażania. – ulty4life

Odpowiedz

17

(Aktualizacja 07.03.2016 - UWAGA: non-Administrator wdrożeń również wymagać ?site=IIS_SITE_NAME po msdeploy.axd, w przeciwnym razie połączenie jest traktowane jako globalne i wymaga dostępu administratora)

Nie jestem pewien, jak bardzo tęskniłem za tym pierwotnie, ale Twoim problemem jest parametr computerName. Wdrożenia bez udziału administratora są obsługiwane tylko podczas korzystania z WMSVC, dla którego należy podać pełny adres URL.

Wypróbuj następujące

msdeploy -verb:sync^
    -source:appHostConfig="KitchenPC",computerName=https://192.168.0.3:8172/MsDeploy.axd,userName=kpcpublish,password=secret,authType=Basic^
    -dest:package=c:\DeployTest\KPC.zip 

From the docs:

The computer name will be translated to the default Web Deploy URL. For example, computerName=Server1 will become http://Server1/MsDeployAgentService. If the remote service is running with a custom port or URL, you must specify the full URL

I from the install instructions:

The MSI will not install the Web Management Service handler component if the Web Management Service is not installed; the handler component is necessary for non-administrator deployments

(nie mogłem znaleźć bardziej wyraźne źródło kanoniczną, która opisuje WMSVC jako wymóg w przypadku wdrożeń bez uprawnień administratora)

+0

Ten sam błąd z ustawieniem 'authType'. Pod nazwą komputera masz na myśli nazwę DNS? Ten sam błąd z tym. I pamiętaj, że łączy * i * działa z danymi uwierzytelniającymi administratora. –

+0

Hrm, czy MSDeploy v3 jest zainstalowany zarówno na kliencie, jak i na serwerze? –

+0

Tak. Jak już powiedziałem, działa * idealnie *, jeśli używam nazwy użytkownika i hasła administratora. –

15

Wyobraziłem!

Wygląda więc na to, że (przynajmniej domyślnie) WMSVC słucha tylko na HTTPS, a HTTP po prostu przestanie działać. Ponieważ jednak mój certyfikat był samopodpisany, musiałem użyć opcji wiersza poleceń -allowUntrusted.

To było prawie wystarczy. Musiałem również podać: authType = Basic, jak sugerował Richard. Tak więc, aby umieścić to wszystko razem, to linia poleceń MSDeploy że rzeczywiście działa:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://192.168.0.3:8172/msdeploy.axd,authType=Basic,userName=Publish,password=secret -dest:package=c:\DeployTest\KPC.zip -allowUntrusted 
+0

Dzięki za aktualizacje itp. Pierwsze samobójcze ponad 404 z msdeploy.exe, zdalny IIS, który używa 8172 działa. –

+2

@LukePuplett - zwykle jest to wieczór frustracji, który działa, ale jest całkiem niezły! O wiele lepiej niż pliki FTP wokół. W końcu opakowałem to wszystko w skrypty PowerShell, więc mogę po prostu powiedzieć * publikuj etap * lub * publikuj prod * –

+0

Nie mogę zrozumieć, dlaczego to nie jest paczka CmdLets PowerShell - jest tu ładunek nowych CmdLetów do zarządzania Web więc mógłbym nawet pominąć MsDeploy w przyszłości. To zawsze PITA. Mam własne pytanie na moim 404 http://stackoverflow.com/questions/13870561/getting-a-404-from-wmsvc-via-msdeploy-exe –

1

Spróbuj ponownie uruchomić usługę wmsvc na komputerze docelowym

+0

Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem - zawsze możesz komentować swoje posty, a gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/whats-reputation), być w stanie [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment). – fejese

+0

Nie wiem, dlaczego tak powiedziałbyś. Odpowiedziałem na to, ponieważ to była dokładna akcja, która rozwiązała problem. Miałem ten sam problem, o którym wspominałem w tym poście, i żadna z odpowiedzi tutaj nie pomogła mi, ale ta, którą opublikowałem. Moją intencją jest pomóc każdemu, kto może spotkać podobny problem w przyszłości –

0

Jak wspomniano powyżej, upewnij się, że łączysz przez HTTPS. Jeśli próbujesz połączyć się jako administrator, ale nie przy użyciu protokołu SSL, pojawi się następujący błąd:

Error Code: ERROR_USER_NOT_ADMIN

More Information: Connected to 'host' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'host'.

(Gdzie „host” to nazwa serwera)

1

Po skonfigurowaniu sieci wdrożyć mój serwer as follows. Wciąż otrzymywałem awarie połączenia HTTP 404. W maju to, co zadziałało dla mnie, to kolejne dodatkowe wysiłki ...

  1. Odinstaluj wszystkie istniejące wcześniej wersje Web Deploy. Nie wiedziałem nawet, że istnieją; jednak poprzednie wersje wydają się być w konflikcie z nawiązaniem połączenia z najnowszą usługą Web Deploy. Nowsza wersja nie odinstalowuje swoich poprzedników. W ostatniej części otrzymywałem HTTP 401.7 - File Extension Denied.
  2. Na dokładkę, wykonał naprawę obecnej wersji Web Deploy, obecnie Microsoft Web Deploy 3.6
  3. Na dokładkę, odtwarzać i importować mój Visual Studio 2013 profil wdrażania ...
    1. odtworzyć publish settings file pomocą Configure Web Deploy Publishing dialog dostępny z opcji menu kontekstowego strony docelowej Deploy w panelu IIS Manager 'Connections. (Uwaga, publish settings file zostanie odtworzony po naciśnięciu Setup jako pliku, którego pełna ścieżka jest określona we wpisie dialogu, Specify a location to save the publish settings file)
    2. Kopiowanie lub w inny sposób dokonać publish settings file dostępny do Visual Studio i wybierając Publish z menu kontekstowego Twojego projektu, utwórz profil publikowania Visual Studio, importując publish settings file.
0

Dla mnie problemem było to, że moje hasło wygasło ... Zauważyłem to, gdy zakładania konta na zewnątrz, a następnie starał się zalogować z powrotem trhough zdalnego pulpitu.

Powiązane problemy