2012-10-20 13 views
14

Sto integrando MSDeploy nel mio processo di compilazione e avendo problemi di autenticazione. Il seguente comando funziona bene:MSDeploy.exe può connettersi come amministratore, ma nessun altro account di Windows

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

Tuttavia, questo non funziona:

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

e rendimenti l'errore:

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. 

Ho seguito le istruzioni nel link qui sotto, e qualsiasi other docs I could find, che praticamente tutti dicono la stessa cosa:

  1. Ho creato un account chiamato kpcpublish
  2. ho aggiunto questo account a un gruppo chiamato MSDepSvcUsers - Heck, ho anche aggiunto l'account di amministratori
  3. ho ragione cliccato sul sito e selezionato Installare-> Configura Web Deploy Publishing e aggiunto kpcpublish all'elenco. Si dice quanto segue:

.

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' 

Ci deve essere qualche passo mi manca, ma io proprio non riesco a capire cosa potrebbe essere.

UPDATE:

Utilizzando il percorso HTTP completo per la proprietà computerName, ottengo l'errore:

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.

Ho controllato e il servizio di gestione Web è davvero in esecuzione.

Un altro aggiornamento:

ho completamente aperto il sistema e impostare di nuovo da zero. Non ho fatto nulla di straordinario, ho appena installato il ruolo IIS e mi sono assicurato di controllare "Servizio di gestione" in Strumenti di gestione, che è necessario per l'esecuzione di WMSVC. Ho quindi installato Web PI e installato "Configurazione consigliata per i provider di hosting", che installerà Web Deploy 3.0. Tuttavia, ho notato che c'era un errore durante l'installazione di questo (credo di aver ricevuto questo errore anche l'ultima volta). Sembra che:

enter image description here

Ho anche attaccato i file di log here.

Ho quindi provato a installare manualmente Web Deploy 3.0, tuttavia si dice che sia già installato. Successivamente, ho scaricato l'MSI direttamente da http://www.iis.net/download/webdeploy e l'ho eseguito in modalità "Ripara". Sembra che abbia funzionato. Ho anche notato che il servizio WMSVC è attivo e funzionante. Quindi questo sembra buono.

Ancora, MSDeploy non si connetterà. Ho pensato che potesse essere una sorta di problema con il firewall, quindi l'ho eseguito localmente. Ho provato a utilizzare sia HTTPS che HTTP per connettersi.HTTPS mi dà un errore, HTTP scade appena dopo 2-3 minuti.

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

solo un pensiero: il file "SERVER_kpcpublish_KitchenPC.PublishSettings" non deve essere archiviato da qualche parte nella cartella di distribuzione e non sul desktop? – SearchAndResQ

+0

@Flakes - Non segue. Per il momento, sto solo provando a sincronizzare dal server web a un archivio zip locale per assicurarmi che le cose funzionino. In realtà non sono sicuro di * cosa * fare con il file PublishSettings, pensavo che fosse solo così non dovevi digitare tutte le informazioni di connessione sulla riga di comando. –

+0

Il file delle impostazioni è rilevante solo se lo si utilizza per iniettare valori nei file di configurazione al momento della distribuzione. – ulty4life

risposta

17

(Aggiornato 2016/03/07 - NOTA: non amministratore implementazioni richiedono anche ?site=IIS_SITE_NAME dopo msdeploy.axd, altrimenti la la connessione è considerata globale e richiede l'accesso come amministratore)

Non sono sicuro di come questo sia stato inizialmente perso, ma il problema è il parametro computerName. Le distribuzioni non di amministratore sono supportate solo quando si utilizza WMSVC, per cui è necessario specificare l'URL completo.

provare il seguente

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

E 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

(non ho potuto trovare una fonte canonica più esplicito che descrive WMSVC come requisito per distribuzioni non di amministrazione)

+0

Stesso errore con l'impostazione di 'authType'. Per nome macchina, intendi il nome DNS? Lo stesso errore con quello. E ricorda, connette * e * funziona con le credenziali di amministratore. –

+0

Hrm, MSDeploy v3 è installato su client e server? –

+0

Sì. Come ho detto, funziona perfettamente * se utilizzo il nome utente e la password dell'amministratore. –

15

Capito!

Quindi, sembra che (almeno per impostazione predefinita), WMSVC sia in ascolto solo su HTTPS e HTTP scada. Tuttavia, poiché il mio certificato era autofirmato, ho dovuto usare l'opzione da riga di comando -allowUntrusted.

Questo era quasi abbastanza. Ho anche dovuto specificare authType = Basic come suggerito da Richard. Quindi, per mettere tutto insieme, questa è la linea di comando MSDeploy che realmente funzionare:

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

Grazie per gli aggiornamenti, ecc. Avendo suicidio su un 404 da msdeploy.exe, IIS remoto che utilizza 8172 funziona. –

+2

@LukePuplett - Sì, di solito è una serata di frustrazione per far funzionare tutto questo, tuttavia è piuttosto scorrevole quando lo fa! Meglio di FTP'in file in giro. Alla fine ho concluso tutto in script PowerShell, quindi posso solo dire * pubblicare stage * o * pubblicare prod * –

+0

Non riesco a capire perché non si tratta di un gruppo di CmdLets di PowerShell in ogni caso - c'è un carico di nuovi CmdLets per la gestione Web quindi potrei anche saltare MsDeploy in futuro. È sempre un PITA. Ho una mia domanda in esecuzione sul mio 404 http://stackoverflow.com/questions/13870561/getting-a-404-from-wmsvc-via-msdeploy-exe –

1

provare a riavviare il servizio WMSVC sul computer di destinazione

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). – fejese

+0

Non so perché lo diresti. Ho risposto perché era l'azione esatta che ha risolto il problema per me. Stavo avendo lo stesso problema di cui ho parlato in questo post e nessuna delle risposte qui mi ha aiutato, ma quella che ho postato. E la mia intenzione è di aiutare chiunque possa affrontare problemi simili in futuro –

0

Come accennato in precedenza, assicurarsi che si sta connettendo su HTTPS. Se si sta tentando di connettersi come Admin, ma non utilizzando il protocollo SSL, si ottiene il seguente errore:

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'.

(Dove 'host' è il nome del server)

1

Dopo la configurazione Web Deploy mio server as follows. Ho continuato a ottenere errori di connessione HTTP 404. In maggio ciò che ha funzionato per me sono stati i seguenti ulteriori sforzi ...

  1. Disinstallare tutte le versioni precedenti di Web Deploy esistenti. Non ero nemmeno consapevole della loro esistenza; tuttavia, le versioni precedenti sembrano in conflitto con il completamento di una connessione al servizio Web Deploy più recente. La versione più recente non disinstallare i loro predecessori. Nell'ultima parte, stavo ottenendo HTTP 401.7 - File Extension Denied.
  2. Per buona misura, eseguita una riparazione della versione corrente di Web Deploy, attualmente Microsoft Web Deploy 3.6
  3. Per buona misura, ricreare e importare il mio Visual Studio 2013 profilo distribuzione ...
    1. ricreare il publish settings file utilizzando il Configure Web Deploy Publishing dialogo disponibile dall'opzione del menu contestuale Deploy del sito Web di destinazione nel pannello ConnectionsConnections. (Nota, il publish settings file verrà ricreato quando si preme Setup come il file il cui percorso completo è specificato nella voce del dialogo, Specify a location to save the publish settings file)
    2. copia o altrimenti rendere il publish settings file a disposizione Visual Studio e selezionando Publish dal menu contestuale del progetto, creare un profilo di pubblicazione di Visual Studio importando lo publish settings file.
0

Per me il problema era che la mia password è scaduto ... Ho notato che quando loging fuori e poi ha cercato di accedere di nuovo trhough desktop remoto.