Ottenere un 404 da WMSvc tramite MSDeploy.exe


121

Da Windows 8 a Windows Server 2012 (IIS 8) con Web Management Services installati e funzionanti, posso utilizzare IIS Manager sulla scatola W8 per gestire il server remoto ma ottengo un 404.7 da WMSvc quando eseguo il seguente comando:

msdeploy.exe" -verb:dump -source:contentPath=c:\InetPub\wwwroot,computerName=https://uktnws01:8172/MsDeploy.axd,userName=corp\administrator,password=WMSvcIsCrap,authType=Basic -allowUntrusted

Ho provato tutti i tipi di combinazioni e parametri. Posso telnet a quella porta, so che è aperta.

Sto solo rimuovendo la funzionalità del servizio di gestione da Windows e riavvio. Mi verserò uno scotch e farò degli spuntini. Nel frattempo, se hai qualche idea, condividila.

Unisciti al mio blog live qui sotto e segui l'azione.

Aggiorna 1

Con il servizio di gestione rimosso, ora ottengo

Errore: impossibile connettersi al server remoto Errore: non è stato possibile stabilire una connessione perché la macchina di destinazione l'ha rifiutata attivamente 192.168.2.22:8172 Conteggio errori: 1.

Dove la seconda riga è un nuovo messaggio! Woohoo.

Aggiorna 2

Ok, quindi le cose stanno andando di male in peggio ora. Dopo la reinstallazione, la console IIS remota avviserà sul certificato e quindi dirà,

Il server non accetta connessioni remote.

Ma penso che questo sia perché probabilmente non ho riattivato la gestione remota, oltre a installare quella dannata cosa.

Aggiorna 3

Con la gestione remota abilitata, l'IIS remoto funziona di nuovo ma il 404 è tornato. Solo nell'interesse del SEO, ecco l'errore completo:

Error Code: ERROR_DESTINATION_NOT_REACHABLE More Information: Could not connect to the remote computer ("uktnws01"). 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_DESTINATION_NOT_REACHABLE.
Error: The remote server returned an error: (404) Not Found.
Error count: 1.

Aggiorna 4

Ho provato lo stesso comando su un altro server Web tramite una VPN a un client e funziona alla grande! Sembra che IIS sia fubar'ed sulla mia nuova build 2012 assolutamente sculacciata.

Aggiorna 5

Ho abilitato la traccia delle richieste non riuscite per WMSvc e ho visto che il 404.7 proviene dal modulo RequestFilteringModule. Secondo la documentazione, 404.7 è "Estensione file negata".

http://www.iis.net/configreference/system.webserver/security/requestfiltering

L'aggiunta di una regola del server esplicita per i file .axd non aiuta però. È interessante vedere questo modulo, poiché impone restrizioni sulla lunghezza dell'URL e sulle dimensioni dei contenuti. Riesci a immaginare di risolvere questo problema in un'app WCF ospitata da IIS! Haha. Sto piangendo davvero.

Aggiorna 6

Sto rimuovendo il filtro delle richieste che significa rimuovere ASP.NET e anche varie altre cose. Hanno bisogno di una reinstalla funzionalità e dipendenze di Windows tutto in un colpo perché scriviamo un'opzione software inaffidabile.

Aggiorna 7

Reinstallo tutto e poi un australiano di nome Richard appare dal nulla e spiega totalmente che Web Deploy non fa effettivamente parte di WMSvc come standard, anche su IIS 8, e che devo installare Web Deploy.

Faccio così. Quindi disabilito MsDepSvc che è l'altra parte che installa (che pensavo fosse l'intera distribuzione Web) perché fa schifo sulla porta 80 e impedisce ai bilanciatori di carico di vedere un servizio IIS disattivato.

E funziona. Posso andare a letto.


24
+1 per l'esilarante password
Michael12345

4
Quanta produttività stiamo perdendo tutti a causa di questo pasticcio? Sto riscontrando un problema simile, ma mi sono imbattuto in un caso in cui IIS si arresta in modo anomalo durante la ricerca dei nomi utente.
ATL_DEV

6
Su Windows 2012, era l'ordine di installazione per me, dovevo prima installare la funzionalità del servizio di gestione Web, quindi installare la distribuzione web 3.5.
JustEngland

1
L'installazione della distribuzione web non è sufficiente !. Avevo installato il web deploy, è stata la prima cosa che ho fatto. Ho dovuto aggiungere / rimuovere programmi e modificare le impostazioni di installazione per includere il gestore. Auguro amore, felicità e prosperità allo sviluppatore di MS che ha pensato che fosse un valore predefinito ragionevole non includere il gestore che consente al servizio di svolgere il proprio lavoro.
nurettin

Ho avuto tutti i tipi di problemi cercando di far funzionare Web Deploy 3.6, quindi ho seguito il commento di Sinned Lolwut e ho disinstallato 3.6 e invece 3.5 installato - ha funzionato prima pop. Ho utilizzato Web Platform Installer ( microsoft.com/web/downloads/platform.aspx ) per installare Web Deploy 3.5. Successivamente è stato riavviato il servizio di gestione Web ed è stato possibile convalidare la connessione nel profilo di distribuzione Web di Visual Studio. (Avrei risposto in un commento sopra ma non ho ancora abbastanza reputazione).
bob numero 2 del

Risposte:


86

Hai installato Web Deploy sul server? Web Deploy registra un gestore (/msdeploy.axd) con WMSVC, quindi un 404 sarebbe il codice di stato previsto se non fosse installato.


2
No, non l'ho fatto. Non sapevo di doverlo fare! Pensavo che l'intera faccenda della distribuzione facesse parte di WMSvc? OMG, credo che tu abbia ragione, sono così stupidi. Recentemente sono stato così confuso con tutto questo e ho pensato che Web Deploy la cosa che installi fosse solo l'agente, per società di hosting e simili. Guarda il mio altra domanda stackoverflow.com/questions/13602502/...
Luca Puplett

2
WMSVC serve per la configurazione remota di IIS. MSDeploy è stato creato molto tempo dopo, quindi non può essere integrato nel core. Se l'installazione di MSDeploy non è possibile, puoi utilizzare un agente temporaneo che installerà un gestore per la durata della distribuzione (avrai bisogno dell'accesso di amministratore, ovviamente).
Richard Szalay

16
Ho dovuto disinstallare Web Deploy 3 e quindi reinstallarlo di nuovo per farlo funzionare. In qualche modo il mio IIS8 è stato incasinato.
Rosdi Kasim

30
Stesso problema, è appena entrato nel Pannello di controllo e modificato l'installazione di "Web Deploy" per includere il gestore. Riavviato il servizio WMSVC ed è andato tutto bene!
Matt Woodward,

13
Se hai installato Web Deploy prima di installare il servizio di gestione Web, dovrai seguire le procedure descritte sopra
Matt Baker

180

Nel caso in cui qualcun altro abbia gli stessi problemi di quello che ho io, ho anche ricevuto lo stesso errore 404. Il modo più veloce che ho trovato per controllare è stato quello di andare sul server stesso e aprire "https: // <servername>: 8172 / MsDeploy.axd". Chrome e Firefox hanno appena mostrato una pagina vuota, quindi ho dovuto utilizzare la scheda Rete degli strumenti per sviluppatori (F12) per vedere il messaggio di errore 404 effettivo.

In qualche modo, durante l'installazione di Web Deploy 3.0 dal programma di installazione della piattaforma Web, il gestore della distribuzione di IIS 7 non è stato installato, anche se il modulo dell'interfaccia utente del gestore IIS lo ha fatto. Nel mio caso, ho scaricato l'installazione .msi dello strumento di distribuzione Web dal seguente collegamento: Installazione dello strumento di distribuzione Web . Quindi sono dovuto tornare allo strumento di amministrazione di IIS (Start -> Esegui -> inetmgr.exe)> {nome server}> fare clic sull'icona Servizio di gestione e riavviare il servizio di gestione prima che il gestore MsDeploy.axd iniziasse a funzionare.

Abilitazione del gestore distribuzione IIS + servizio agente remoto

inserisci qui la descrizione dell'immagine


98
Sono stato in grado di andare su Pannello di controllo> Programmi e funzionalità. Fare clic con il pulsante destro del mouse su "Microsoft Web Deploy 3.5" e selezionare "Modifica". Dal programma di installazione selezionare "Modifica" e "Gestore distribuzione IIS" era disponibile come opzione (inizialmente era disabilitato. Anche "Configura per distribuzioni non amministratore" e "Interfaccia utente delega servizio di gestione" erano opzioni aggiuntive.) La mia prima richiesta a MSDeploy.axdaveva ancora il 404 ma la richiesta successiva ha ricevuto una richiesta di accesso.
Carl G

3
E se sei smemorato come me, ricorda che devi aver già installato il servizio di gestione (Aggiungi / Rimuovi funzionalità Windows> Server Web (IIS)> Strumenti di gestione> Servizio di gestione) prima che il "Gestore distribuzione IIS" sia visibile durante la modifica del Installazione di Web Deploy 3.5.
Carl G

@DGDev Web Deployment Tool 2.1 è il precedente di Web Deploy 3.0
Kuepper

1
Ehi Carl G, il tuo commento è stata l'unica cosa utile che ho trovato per questo problema. Vorrei che potesse essere una parte della risposta invece di un semplice commento qui. (Admin, per favore, mettila come risposta corretta, se possibile)
mohghaderi

@CarlG - ottima cattura! Ho aggiunto un'acquisizione dello schermo come riferimento.
SliverNinja - MSFT

69

Su Windows 2012 R2 Server ho seguito il consiglio di mga911.

Ero bloccato nel far funzionare le distribuzioni. Se fosse installato Web Deploy 3.5 -> Delega del servizio di gestione abilitato -> I servizi garantiti sono stati avviati. Il problema era che il gestore di distribuzione IIS non era stato installato. Passando attraverso Web PI 4.6 non mi è stata data la possibilità di installare il gestore di distribuzione IIS. Devi andare nel pannello di controllo -> Programmi e funzionalità Cambia l'installazione di Web Deploy 3.5. Si prega di notare le mie istruzioni. Nel processo di modifica indica che verranno installati tutti i pacchetti secondari, ma il messaggio di testo dice che verranno installati 0 dei 3 componenti secondari. Uno di questi componenti è il gestore IIS. Leggi attentamente perché non l'ho fatto ed ero frustrato :)

  • Pannello di controllo> Programmi e funzionalità
  • Fare clic con il pulsante destro del mouse su Microsoft Web Deploy 3.5
    • Seleziona Modifica> fai clic su Avanti> fai clic su modifica
    • Noterai che quando è selezionato Web Deployment Framework vedrai nel messaggio "Ha 0 di 3 funzionalità secondarie selezionate"
    • Fare clic sul menu a discesa e selezionare "L'intera funzionalità verrà installata sul disco rigido locale"
    • Avanti> Cambia> Fine

2
Ho provato questo trucco con Web Deploy 3.6 su Win 2012 R2. Non ha funzionato con il seguente errore "Errore:" Impossibile leggere la sezione di configurazione "system.webServer / management / delegation" perché manca lo schema "... Web Deploy 3.6 disinstallato e Web Deploy 3.5 disattivato da iis.net / downloads / microsoft / web-deploy Funzionato.
Sinned Lolwut

Questo mi aiuta molto! Grazie. Win2012 r iis 8
Roberto Gata

18

Un punto importante penso sia che devi prima attivare il servizio di gestione e quindi installare Web Deploy.

L'ho fatto al contrario e non ha funzionato.

Solo reinstallando la distribuzione Web ha iniziato a funzionare.


La stessa cosa è successa a me. Che incubo!
Christopher Townsend,

1
Immagino che la maggior parte delle persone qui (me compreso) avesse lo stesso problema ma non se ne rendevano conto perché disinstallare la distribuzione web, reinstallarlo di nuovo e quindi riavviare il servizio di gestione è praticamente la stessa cosa :)
ilter

13

Quando ho installato Web Deploy tramite il programma di installazione della piattaforma Web, il gestore non è stato selezionato. Ho dovuto installare manualmente Web Deploy 3.0, fare clic su "modifica" e quindi selezionare l'Handler da installare.


12

Dopo ore di ricerca, la soluzione di seguito ha funzionato per me !!

Control Panel > Programmi e funzionalità

Fare clic con il pulsante destro del mouse su Microsoft Web Deploy 3.5

Seleziona Modifica> fai clic su Avanti> fai clic su modifica

Noterai che quando è selezionato Web Deployment Framework vedrai nel messaggio

 "It has 0 of 3 subfeatures selected"

Fare clic sul menu a discesa selezionare "Entire feature will be installed on local hard drive"

Avanti> Cambia> Fine


8

Nel mio caso, durante l'installazione del pacchetto Web deploy 3.0 tramite il web pi non ho mai ottenuto l'opzione Management Service Delegation in IIS / home .. la reinstallazione ha tuttavia risolto il problema, risolvendo Risolto il mio errore 404.7.

Questo era sotto Microsoft Server 2012 e IIS8

Modifica: di recente ho provato la stessa cosa su Windows 8 e vorrei sottolineare che il sito Web di Microsoft afferma:

Non è possibile configurare la pubblicazione remota utilizzando Web Deploy per un sito ospitato in IIS su Windows 8.0 o 8.1. Il motivo è che gli SKU client per Windows non vengono forniti con il servizio di gestione Web necessario per le connessioni remote. Di conseguenza, in Windows 8.0 o 8.1, l'icona Autorizzazioni di Gestione IIS e l'opzione di distribuzione Configura pubblicazione distribuzione Web necessarie per configurare la pubblicazione remota non sono disponibili in Gestione IIS. http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00

(Sì, mi rendo conto che l'obiettivo è Server 2012 nella domanda, ma questo potrebbe salvare molte persone dall'avere lo stesso mal di testa di me, dal momento che ha funzionato bene sulla mia vecchia macchina di sviluppo che volevo far sapere alla gente.)


3

Piuttosto che usare Web Platform Installer. Scarica WebDeploy.exe dal sito Web e installalo sul server con l'opzione Pacchetto completo.

Risolverà il problema.


1

Inoltre potrebbe essere necessario concedere l'accesso al servizio di gestione Web

Ho anche avuto il problema di Visual Studio (2013) non poteva aggiornare l'app sul mio server (Windows 2012 R2 IIS 8.5). Ho aggiunto i componenti manualmente come descritto sopra, ma questo non ha risolto il problema. Poi ho trovato questo articolo .

Fondamentalmente dice che il servizio di gestione Web è connesso come servizio locale che non ha diritti di accesso alla directory Inetpub. La concessione delle autorizzazioni per il servizio locale ha risolto il problema per me.


1

Ho lo stesso problema. Ho risolto questo problema con "Restart-Service wmsvc".


1
Ehi, vota positivamente la tua domanda perché sembra esserti d'aiuto, poiché questa è la tua prima risposta qui, sarebbe fantastico se potessi scrivere un po 'di più la prossima volta. Ancora poche parole, le frasi complete sono davvero apprezzate :)
Tim Cadenbach

-1

Utilizzato solo windows auth. Distribuzione web 3.5. E solo il certificato WMSVC impostato nell'icona Servizio di gestione dell'icona del server di livello superiore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.