Obtendo um 404 do WMSvc via MSDeploy.exe

121

Do Windows 8 ao Windows Server 2012 (IIS 8) com os Serviços de Gerenciamento da Web instalados e funcionando, posso usar a caixa Gerenciador do IIS no W8 para gerenciar o servidor remoto, mas recebo um 404.7 do WMSvc quando executo o seguinte comando:

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

Eu tentei todos os tipos de combinações e parâmetros. Posso telnet para essa porta, sei que está aberta.

Estou apenas removendo o recurso Serviço de Gerenciamento do Windows e reiniciando. Vou me servir de uísque e fazer alguns lanches. Enquanto isso, se você tiver alguma idéia, compartilhe.

Participe do meu blog ao vivo abaixo e siga a ação.

Atualização 1

Com o Serviço de Gerenciamento removido, agora recebo

Erro: Não foi possível conectar-se ao servidor remoto Erro: Nenhuma conexão pôde ser estabelecida porque a máquina de destino a recusou ativamente 192.168.2.22:8172 Contagem de erros: 1.

Onde a segunda linha é uma nova mensagem! Woohoo.

Atualização 2

Ok, então as coisas estão indo de mal a pior agora. Desde a reinstalação, o console remoto do IIS alerta o certificado e diz:

O servidor não está aceitando conexões remotas.

Mas acho que é porque provavelmente não reativei o Gerenciamento Remoto, além de instalar a maldita coisa.

Atualização 3

Com o Gerenciamento Remoto ativado, o IIS remoto funciona novamente, mas o 404 retornou. Apenas no interesse de SEO, eis o erro 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.

Atualização 4

Tentei o mesmo comando contra outro servidor web através de uma VPN para um cliente e isso funciona muito bem! Parece que o IIS está relacionado à minha nova versão de 2012 absolutamente incrível.

Atualização 5

Ativei o rastreamento de solicitações com falha no WMSvc e vi que o 404.7 vem do módulo RequestFilteringModule. 404.7 é 'Extensão de arquivo negada' de acordo com a documentação.

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

Adicionar uma regra explícita do servidor para arquivos .axd não ajuda. É interessante ver este módulo, pois ele impõe restrições ao tamanho da URL e ao tamanho do conteúdo. Você pode imaginar solucionar esse problema em um aplicativo WCF hospedado no IIS! Haha Estou chorando mesmo.

Atualização 6

Estou removendo a Filtragem de solicitações, o que significa remover o ASP.NET e várias outras coisas também. Eles precisam da opção Reinstalar recursos e dependências do Windows, tudo em um clique, porque escrevemos software não confiável.

Atualização 7

Eu reinstalo tudo e, em seguida, um australiano chamado Richard aparece do nada e explica totalmente que o Web Deploy não faz parte do WMSvc como padrão, mesmo no IIS 8, e que preciso instalar o Web Deploy.

Então eu faço. Em seguida, desabilito o MsDepSvc, que é a outra parte que ele instala (que eu pensava ser a totalidade do Web Deploy) porque é uma sucção na porta 80 e impede que os balanceadores de carga vejam um serviço IIS desativado.

E isso funciona. Eu posso ir para a cama.

Luke Puplett
fonte
24
+1 para a senha hilária
Michael12345
4
Quanta produtividade estamos perdendo para essa bagunça? Estou com um problema semelhante, mas estou com um caso em que o IIS trava ao procurar nomes de usuários.
ATL_DEV
6
No Windows 2012, foi a ordem de instalação para mim. Primeiro, instalei o recurso Serviço de Gerenciamento da Web e instale o Web deploy 3.5.
JustEngland
1
Instalar a implementação na web não é suficiente !. Eu tinha o web deploy instalado, foi a primeira coisa que fiz. Eu tive que adicionar / remover programas e alterar as configurações de instalação para incluir o manipulador. Desejo amor, felicidade e prosperidade ao desenvolvedor do MS, que considerou um padrão sensato não incluir o manipulador que permite que o serviço faça seu trabalho.
Nurettin
Eu tive todos os tipos de problemas tentando fazer o Web Deploy 3.6 funcionar, por isso segui o comentário de Sinned Lolwut e desinstalei o 3.6 e instalei o 3.5 - em vez disso - funcionou o primeiro pop. Usei o Web Platform Installer ( microsoft.com/web/downloads/platform.aspx ) para instalar o Web Deploy 3.5. Reiniciou o Serviço de Gerenciamento da Web posteriormente e conseguiu validar a conexão no perfil do Visual Studio Web Deploy. (Eu teria respondido em um comentário acima, mas ainda não tenho reputação suficiente).
bob número 2

Respostas:

86

Você instalou o Web Deploy no servidor? O Web Deploy registra um manipulador (/msdeploy.axd) no WMSVC; portanto, um 404 seria o código de status esperado se não estivesse instalado.

Richard Szalay
fonte
2
Não, eu não tenho. Eu não sabia que precisava! Eu pensei que toda a coisa de implantação fazia parte do WMSvc? OMG, eu acho que você está certo, eles são tão estúpidos. Recentemente, fiquei tão confuso com tudo isso e pensei que o Web Deploy só instalava o agente, para empresas de hospedagem e afins. Confira minha outra pergunta stackoverflow.com/questions/13602502/…
Luke Puplett
2
O WMSVC é para configurar remotamente o IIS. O MSDeploy foi criado muito tempo depois, portanto não pode ser integrado ao núcleo. Se a instalação do MSDeploy não for possível, você pode usar um agente temporário que instalará um manipulador durante a implantação (você precisará de acesso de administrador, obviamente).
Richard Szalay
16
Eu tive que desinstalar o Web Deploy 3 e reinstalá-lo novamente para fazê-lo funcionar. De alguma forma, meu IIS8 estava bagunçado.
Rosdi Kasim
30
O mesmo problema, foi ao Painel de Controle e alterou a instalação do "Web Deploy" para incluir o Manipulador. Reiniciou o serviço WMSVC e tudo foi bom!
Matt Woodward
13
Se você instalou o Web Deploy antes da instalação do Serviço de Gestão de Web que você terá que seguir os procedimentos descritos acima
Matt Baker
180

Caso outra pessoa esteja tendo os mesmos problemas do que eu, também recebi o mesmo erro 404. A maneira mais rápida que encontrei para verificar foi acessar o próprio servidor e abrir "https: // <servername>: 8172 / MsDeploy.axd". O Chrome e o Firefox apenas mostraram uma página em branco, então tive que usar a guia Rede das ferramentas do desenvolvedor (F12) para ver a mensagem de erro 404 real.

De alguma forma, durante a instalação do Web Deploy 3.0 a partir do Instalador da Plataforma Web, o manipulador de implantação do IIS 7 não foi instalado, mesmo que o módulo de interface do usuário do IIS Manager. No meu caso, baixei o .msi de Instalação da Ferramenta de Implantação da Web no seguinte link: Instalação da Ferramenta de Implantação da Web . Depois tive que voltar para a Ferramenta de administração do IIS (Iniciar -> Executar -> inetmgr.exe)> {nome do servidor}> clique no ícone Serviço de Gerenciamento e reinicie o serviço de gerenciamento antes que o manipulador MsDeploy.axd comece a funcionar.

Habilitando o manipulador de implantação do IIS + o serviço de agente remoto

insira a descrição da imagem aqui

VeeTheSecond
fonte
98
Eu pude ir ao Painel de Controle> Programas e Recursos. Clique com o botão direito do mouse em "Microsoft Web Deploy 3.5" e selecione "Alterar". No instalador, selecione "Alterar" e "Manipulador de Implantação do IIS" estava disponível como opção (foi desabilitado no início. Também foram configuradas "Configurar para implantações sem administrador" e "UI da delegação de serviço de gerenciamento"). Minha primeira solicitação para MSDeploy.axdainda tinha o 404, mas a próxima solicitação recebeu um prompt de login.
Carl G
3
E se você for esquecido como eu, lembre-se de que já deve ter instalado o Serviço de Gerenciamento (Adicionar / Remover Recursos do Windows> Servidor Web (IIS)> Ferramentas de Gerenciamento> Serviço de Gerenciamento) antes que o "Manipulador de Implantação do IIS" esteja visível ao alterar o Instalação do Web Deploy 3.5.
Carl G
@DGDev Ferramenta de Implantação da Web 2.1 é a precedecessor da Web Deploy 3.0
Kuepper
1
Olá Carl G, seu comentário foi a única coisa útil que encontrei para esse problema. Eu gostaria que pudesse ser uma parte da resposta em vez de um simples comentário aqui. (Adm favor colocá-lo como uma resposta certa, se possível)
mohghaderi
@CarlG - grande captura! Eu adicionei uma captura de tela para referência.
SliverNinja - MSFT
69

No Windows 2012 R2 Server, segui o conselho de mga911.

Eu estava empolgado com as implantações funcionando. Instalou o Web Deploy 3.5 -> Delegação do Serviço de Gerenciamento Ativado -> Serviços Assegurados. O problema era que o manipulador de implantação do IIS não havia sido instalado. Passando pelo Web PI 4.6, não tive a oportunidade de instalar o manipulador de implantação do IIS. Você precisa acessar o painel de controle -> Programas e Recursos Alterar a instalação do Web Deploy 3.5. Observe minhas instruções. No processo de mudança, indica que todos os subpacotes serão instalados, mas a mensagem de texto informa que 0 de 3 subcomponentes serão instalados. Um desses componentes é o manipulador do IIS. Leia com atenção, porque eu não fiz e estava frustrado :)

  • Painel de controle> Programas e Recursos
  • Clique com o botão direito do mouse no Microsoft Web Deploy 3.5
    • Selecione Alterar> clique em próximo> clique em alterar
    • Você perceberá que quando o Web Deployment Framework estiver selecionado, você verá a mensagem "Ele possui 0 de 3 sub-recursos selecionados"
    • Clique no menu suspenso e selecione "Todo o recurso será instalado no disco rígido local"
    • Próximo> Alterar> Concluir
muglio
fonte
2
Tentei esse truque com o Web Deploy 3.6 no Win 2012 R2. Não funcionou com o seguinte erro "Erro:" A seção de configuração 'system.webServer / management / delegation' não pode ser lida porque está faltando o esquema "... O Web Deploy 3.6 não instalado e o Web Deploy 3.5 não estão disponíveis no iis.net / downloads / microsoft / Web-deploy Trabalhou.
Sinned Lolwut
Isso me ajuda muito! Obrigado. Win2012 r iis 8
Roberto Gata
18

Um ponto importante, acho que é que você precisa ativar o serviço de Gerenciamento primeiro e depois instalar o Web Deploy.

Fiz o contrário e não funcionou.

Somente reinstalando a implantação da Web ele começou a funcionar.

Haymansfield
fonte
A mesma coisa aconteceu comigo. Que pesadelo!
Christopher Townsend
1
Eu acho que a maioria das pessoas aqui (inclusive eu) tinha o mesmo problema, mas não o perceberam porque desinstalar a implantação na web, reinstalá-lo novamente e reiniciar o Serviço de Gerenciamento é praticamente a mesma coisa :)
ilter
13

Quando instalei o Web Deploy por meio do instalador da plataforma da Web, o Handler não foi selecionado. Eu tive que instalar manualmente o Web Deploy 3.0, clique em "alterar" e selecione o manipulador a ser instalado.

mga911
fonte
12

Após horas de pesquisa, a solução abaixo funcionou para mim !!

Control Panel > Programas e Recursos

Clique com o botão direito do mouse no Microsoft Web Deploy 3.5

Selecione Alterar> clique em próximo> clique em alterar

Você perceberá que quando o Web Deployment Framework estiver selecionado, você verá a mensagem

 "It has 0 of 3 subfeatures selected"

Clique no menu suspenso e selecione "Entire feature will be installed on local hard drive"

Próximo> Alterar> Concluir

Laurent
fonte
8

No meu caso, ao instalar o pacote web deploy 3.0 pela web pi, nunca recebi a opção Delegação de Serviço de Gerenciamento no IIS / home .. reinstalá-lo corrigiu o problema, resolvendo o erro Resolvido meu 404.7.

Isso estava no Microsoft Server 2012 e IIS8

Edit: Eu tentei recentemente a mesma coisa no Windows 8 e gostaria de salientar que o site da microsoft afirma:

Você não pode configurar a publicação remota usando o Web Deploy para um site hospedado no IIS no Windows 8.0 ou 8.1. O motivo é que os SKUs do cliente para Windows não vêm com o Serviço de Gerenciamento da Web necessário para conexões remotas. Como resultado, no Windows 8.0 ou 8.1, o ícone Permissões do Gerenciador do IIS e a opção de implantação Configurar Publicação de Implantação da Web, necessárias para configurar a publicação remota, não estão disponíveis no Gerenciador do IIS. http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00

(Sim, eu sei que o alvo é o Server 2012 na pergunta, mas isso pode evitar que muitas pessoas tenham a mesma dor de cabeça que eu, pois isso funcionou muito bem na minha antiga máquina de desenvolvimento que eu queria que as pessoas soubessem.)

Cripth
fonte
3

Em vez de usar o Web Platform Installer. Faça o download do WebDeploy.exe no site e instale-o no servidor com a opção Pacote completo.

Isso resolverá o problema.

FAHID
fonte
1

Além disso, pode ser necessário conceder acesso ao Serviço de Gerenciamento da Web

Eu também tive o problema do Visual Studio (2013) não pôde atualizar o aplicativo no meu servidor (Windows 2012 R2 IIS 8.5). Eu adicionei os componentes manualmente como descrito acima, mas isso não resolveu o problema. Então eu encontrei este artigo .

Basicamente, diz que o Serviço de Gerenciamento da Web está conectado como Serviço Local, que não possui direitos de acesso ao diretório Inetpub. A concessão de permissões para o Serviço Local resolveu o problema para mim.

Capitão Dashenka
fonte
1

Eu tenho o mesmo problema. Eu resolvi isso por "Reiniciar o serviço wmsvc".

Evgeny Ponamarev
fonte
1
Ei, votou sua pergunta como parece ajudar, pois esta é sua primeira resposta aqui, seria ótimo se você pudesse escrever um pouquinho mais na próxima vez. Apenas mais algumas palavras, frases completas são realmente apreciadas :)
Tim Cadenbach 11/03
-1

Utilizado apenas para autenticação do Windows. Implementação na Web 3.5. E apenas o certificado WMSVC definido no ícone Serviço de Gerenciamento do ícone do servidor de nível superior.

pat capozzi
fonte