Pobieranie 404 z WMSvc za pośrednictwem MSDeploy.exe

121

Od Windows 8 do Windows Server 2012 (IIS 8) z zainstalowanymi i działającymi usługami zarządzania siecią Web, mogę używać Menedżera IIS na W8 do zarządzania serwerem zdalnym, ale otrzymuję 404.7 z WMSvc, gdy wykonuję następujące polecenie:

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

Wypróbowałem różne kombinacje i parametry. Mogę telnetować się do tego portu, wiem, że jest otwarty.

Po prostu usuwam funkcję usługi zarządzania z systemu Windows i ponownie uruchamiam. Naleję sobie szkockiej i zrobię przekąski. W międzyczasie, jeśli masz jakieś pomysły, podziel się nimi.

Dołącz do mojego bloga na żywo poniżej i śledź akcję.

Zaktualizuj 1

Po usunięciu usługi zarządzania otrzymuję teraz

Błąd: nie można połączyć się z serwerem zdalnym Błąd: nie można nawiązać połączenia, ponieważ maszyna docelowa aktywnie odmówiła 192.168.2.22:8172 Liczba błędów: 1.

Gdzie druga linia to nowa wiadomość! Woohoo.

Zaktualizuj 2

Okej, więc teraz sytuacja się pogarsza. Od czasu ponownej instalacji zdalna konsola IIS zaalarmuje certyfikat, a następnie powie:

Serwer nie akceptuje połączeń zdalnych.

Ale myślę, że dzieje się tak dlatego, że prawdopodobnie nie włączyłem ponownie zdalnego zarządzania, oprócz zainstalowania tego cholerstwa.

Zaktualizuj 3

Po włączeniu zdalnego zarządzania zdalne usługi IIS działają ponownie, ale powrócił błąd 404. Tylko w interesie SEO, oto pełny błąd:

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.

Zaktualizuj 4

Wypróbowałem to samo polecenie na innym serwerze sieciowym przez VPN do klienta i to działa! Wygląda na to, że IIS jest fubar'ed na mojej absolutnie nowej kompilacji z 2012 roku.

Zaktualizuj 5

Włączyłem śledzenie nieudanych żądań dla WMSvc i zauważyłem, że 404.7 pochodzi z modułu RequestFilteringModule. 404.7 to „Odmowa rozszerzenia pliku” zgodnie z dokumentacją.

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

Dodanie jawnej reguły serwera dla plików .axd nie pomaga jednak. Ciekawie jest jednak zobaczyć ten moduł, ponieważ nakłada ograniczenia na długość adresów URL i rozmiary treści. Czy możesz sobie wyobrazić rozwiązanie tego problemu w aplikacji WCF hostowanej przez usługi IIS! Ha ha. Naprawdę płaczę.

Zaktualizuj 6

Usuwam filtrowanie żądań, co oznacza usunięcie ASP.NET i różnych innych rzeczy. Potrzebują opcji ponownej instalacji funkcji i zależności systemu Windows za jednym zamachem, ponieważ piszemy nierzetelne oprogramowanie.

Zaktualizuj 7

Ponownie instaluję wszystko, a potem jakiś Australijczyk imieniem Richard pojawia się znikąd i całkowicie wyjaśnia, że ​​Web Deploy nie jest w rzeczywistości częścią WMSvc w standardzie, nawet w IIS 8 i że muszę zainstalować Web Deploy.

Ja również. Następnie wyłączam MsDepSvc, który jest drugą częścią, którą instaluje (co uważałem za całość Web Deploy), ponieważ jest do bani na porcie 80 i powstrzymuje moduły równoważenia obciążenia przed zobaczeniem wyłączonej usługi IIS.

I to działa. Mogę iść do łóżka.

Luke Puplett
źródło
24
+1 za zabawne hasło
Michael12345
4
Ile produktywności wszyscy tracimy z powodu tego bałaganu? Mam podobny problem, ale mam przypadek, w którym IIS ulega awarii podczas wyszukiwania nazw użytkowników.
ATL_DEV,
6
W systemie Windows 2012 była to dla mnie kolejność instalacji, musiałem najpierw zainstalować funkcję Web Management Service, a następnie zainstalować Web Deployment 3.5.
JustEngland
1
Zainstalowanie wdrożenia internetowego nie wystarczy !. Miałem zainstalowaną aplikację webową i była to pierwsza rzecz, jaką zrobiłem. Musiałem dodać / usunąć programy i zmienić ustawienia instalacji, aby uwzględnić program obsługi. Życzę miłości, szczęścia i pomyślności deweloperowi MS, który uważał, że rozsądnym rozwiązaniem jest pominięcie osoby obsługującej, która pozwala usłudze wykonywać swoją pracę.
nurettin
Miałem różnego rodzaju problemy, próbując uruchomić Web Deploy 3.6, więc poszedłem za komentarzem Sinned Lolwut i odinstalowałem 3.6 i zamiast tego zainstalowałem 3.5 - zadziałało pierwsze pop. Użyłem Instalatora platformy internetowej ( microsoft.com/web/downloads/platform.aspx ), aby zainstalować Web Deploy 3.5. Następnie ponownie uruchomiono usługę zarządzania siecią Web i udało się zweryfikować połączenie w profilu programu Visual Studio Web Deploy. (Odpowiedziałbym w komentarzu powyżej, ale nie mam jeszcze wystarczającej reputacji).
bob numer 2

Odpowiedzi:

86

Czy zainstalowałeś Web Deploy na serwerze? Web Deploy rejestruje program obsługi (/msdeploy.axd) w WMSVC, więc kod 404 byłby oczekiwanym kodem stanu, gdyby nie został zainstalowany.

Richard Szalay
źródło
2
Nie, nie mam. Nie wiedziałem, że muszę! Myślałem, że całe wdrożenie było częścią WMSvc? OMG, myślę, że masz rację, są tacy głupi. Niedawno byłem tak zdezorientowany z tym wszystkim i pomyślałem, że narzędzie Web Deploy to tylko agent dla firm hostingowych i tym podobnych. Sprawdź moje inne pytanie stackoverflow.com/questions/13602502/ ...
Luke Puplett,
2
WMSVC służy do zdalnej konfiguracji usług IIS. MSDeploy został utworzony długo później, więc nie można go zintegrować z rdzeniem. Jeśli instalacja MSDeploy nie jest możliwa, możesz użyć tymczasowego agenta, który zainstaluje program obsługi na czas wdrożenia (będziesz oczywiście potrzebować dostępu administratora).
Richard Szalay,
16
Musiałem odinstalować Web Deploy 3, a następnie ponownie zainstalować, aby działał. W jakiś sposób mój IIS8 został zepsuty.
Rosdi Kasim
31
Ten sam problem, po prostu wszedłem do Panelu sterowania i zmieniłem instalację „Web Deploy”, tak aby zawierała program obsługi. Uruchomiono ponownie usługę WMSVC i wszystko było dobrze!
Matt Woodward
13
Jeśli zainstalowałeś Web Deploy przed zainstalowaniem usługi zarządzania siecią, musisz postępować zgodnie z procedurami opisanymi powyżej
Matt Baker,
180

W przypadku, gdy ktoś inny ma te same problemy niż ja, mam również ten sam błąd 404. Najszybszym sposobem, jaki znalazłem, było przejście na sam serwer i otwarcie „https: // <nazwa_serwera>: 8172 / MsDeploy.axd”. Chrome i Firefox właśnie pokazały pustą stronę, więc musiałem użyć karty Sieć w narzędziach programistycznych (F12), aby zobaczyć rzeczywisty komunikat o błędzie 404.

W jakiś sposób podczas instalowania narzędzia Web Deploy 3.0 z Instalatora platformy sieci Web program obsługi wdrażania usług IIS 7 nie został zainstalowany, mimo że zrobił to moduł interfejsu użytkownika Menedżera usług IIS. W moim przypadku pobrałem plik instalacyjny Web Deployment Tool .msi z następującego łącza: Instalacja narzędzia Web Deployment Tool . Następnie musiałem wrócić do narzędzia administracyjnego IIS (Start -> Uruchom -> inetmgr.exe)> {nazwa serwera}> kliknąć ikonę usługi zarządzania i ponownie uruchomić usługę zarządzania, zanim program obsługi MsDeploy.axd zaczął działać.

Włączanie programu obsługi wdrażania usług IIS + usługi zdalnego agenta

wprowadź opis obrazu tutaj

VeeTheSecond
źródło
98
Udało mi się przejść do Panelu sterowania> Programy i funkcje. Kliknij prawym przyciskiem myszy „Microsoft Web Deploy 3.5” i wybierz „Zmień”. W instalatorze wybierz opcję „Zmień”, a opcja „Program obsługi wdrażania usług IIS” była dostępna jako opcja (początkowo była wyłączona. Dodatkowymi opcjami były również opcje „Konfiguruj dla wdrożeń innych niż administrator” i „Interfejs użytkownika delegowania usługi zarządzania”). MSDeploy.axdnadal miał 404, ale następne żądanie otrzymało monit o zalogowanie.
Carl G
3
A jeśli jesteś zapominalski, tak jak ja, pamiętaj, że musisz mieć już zainstalowaną usługę zarządzania (Dodaj / usuń funkcje systemu Windows> Serwer sieci Web (IIS)> Narzędzia zarządzania> Usługa zarządzania), zanim „Program obsługi wdrażania usług IIS” będzie widoczny podczas zmiany Instalacja Web Deploy 3.5.
Carl G
@DGDev Web Deployment Tool 2.1 jest poprzednikiem Web Deploy 3.0
Kuepper
1
Hej Carl G, twój komentarz był jedyną przydatną rzeczą, jaką znalazłem w związku z tym problemem. Chciałbym, żeby to była część odpowiedzi zamiast prostego komentarza. (Admin, proszę, podaj to jako właściwą odpowiedź, jeśli to możliwe)
mohghaderi
@CarlG - świetny chwyt! Dodałem zrzut ekranu w celach informacyjnych.
SliverNinja - MSFT
69

W systemie Windows 2012 R2 Server postąpiłem zgodnie z radą mga911.

Utknąłem podczas wdrażania wdrożeń. Zainstalowano Web Deploy 3.5 -> Włączone delegowanie usług zarządzania -> Uruchomiono usługi zapewniane. Problem polegał na tym, że program obsługi wdrażania usług IIS nie został zainstalowany. Przechodząc przez Web PI 4.6 nie miałem możliwości zainstalowania modułu obsługi wdrażania IIS. Musisz przejść do panelu sterowania -> Programy i funkcje Zmień instalację Web Deploy 3.5. Proszę zwrócić uwagę na moje instrukcje. W procesie zmiany oznacza to, że wszystkie pakiety podrzędne zostaną zainstalowane, ale wiadomość tekstowa mówi, że zostanie zainstalowanych 0 z 3 podkomponentów. Jednym z tych składników jest program obsługi usług IIS. Przeczytaj uważnie, bo tego nie zrobiłem i byłem sfrustrowany :)

  • Panel sterowania> Programy i funkcje
  • Kliknij prawym przyciskiem myszy Microsoft Web Deploy 3.5
    • Wybierz Zmień> kliknij dalej> kliknij zmień
    • Zauważysz, że po wybraniu Web Deployment Framework zobaczysz komunikat „Ma 0 z 3 wybranych podfunkcji”
    • Kliknij menu rozwijane i wybierz „Cała funkcja zostanie zainstalowana na lokalnym dysku twardym”
    • Dalej> Zmień> Zakończ
muglio
źródło
2
Wypróbowałem tę sztuczkę z Web Deploy 3.6 na Win 2012 R2. Nie działał z następującym błędem „Błąd:” Nie można odczytać sekcji konfiguracji „system.webServer / management / delegation”, ponieważ brakuje w niej schematu ”... Odinstalowano Web Deploy 3.6 i pobrano Web Deploy 3.5 z iis.net / pliki do pobrania / microsoft / web-deploy
działało
To bardzo mi pomóż! Dzięki. Win2012 r iis 8
Roberto Gata
18

Myślę, że jedną ważną kwestią jest to, że musisz najpierw włączyć usługę zarządzania, a następnie zainstalować Web Deploy.

Zrobiłem to na odwrót i to nie zadziałało.

Dopiero po ponownej instalacji wdrożenia internetowego zaczęło działać.

haymansfield
źródło
To samo przytrafiło się mnie. Co za koszmar!
Christopher Townsend
1
Wydaje mi się, że większość ludzi tutaj (w tym ja) miała ten sam problem, ale nie zdawali sobie z tego sprawy, ponieważ odinstalowanie wdrożenia internetowego, ponowne zainstalowanie go i ponowne uruchomienie usługi zarządzania to prawie to samo :)
ilter
13

Kiedy zainstalowałem Web Deploy za pomocą instalatora platformy internetowej, program obsługi nie został wybrany. Musiałem ręcznie zainstalować Web Deploy 3.0, kliknąć „zmień”, a następnie wybrać program obsługi do zainstalowania.

mga911
źródło
12

Po wielu godzinach poszukiwań poniższe rozwiązanie zadziałało!

Control Panel > Programy i funkcje

Kliknij prawym przyciskiem myszy Microsoft Web Deploy 3.5

Wybierz Zmień> kliknij dalej> kliknij zmień

Zauważysz, że po wybraniu struktury wdrażania sieci Web zobaczysz w komunikacie

 "It has 0 of 3 subfeatures selected"

Kliknij listę rozwijaną wybierz "Entire feature will be installed on local hard drive"

Dalej> Zmień> Zakończ

Laurent
źródło
8

W moim przypadku, podczas instalowania pakietu Web Deploy 3.0 przez Internet Pi nigdy nie otrzymałem opcji Management Service Delegation w IIS / home. Ponowna instalacja rozwiązała problem, rozwiązując w ten sposób mój błąd 404.7.

Było to pod Microsoft Server 2012 i IIS8

Edycja: Niedawno wypróbowałem to samo w systemie Windows 8 i chciałbym zwrócić uwagę, że witryna internetowa firmy Microsoft stwierdza:

Nie można skonfigurować publikowania zdalnego przy użyciu narzędzia Web Deploy dla witryny obsługiwanej przez usługi IIS w systemie Windows 8.0 lub 8.1. Powodem jest to, że jednostki SKU klienta dla systemu Windows nie są dostarczane z usługą zarządzania siecią Web, która jest wymagana do połączeń zdalnych. W rezultacie w systemie Windows 8.0 lub 8.1 ikona Uprawnienia Menedżera usług IIS i opcja wdrażania Konfiguruj publikowanie w sieci Web, które są wymagane do skonfigurowania publikowania zdalnego, nie są dostępne w Menedżerze usług IIS. http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later#00

(Tak, zdaję sobie sprawę, że celem w pytaniu jest Serwer 2012, ale może to uchronić wiele osób przed takim samym bólem głowy jak ja, ponieważ działało to dobrze na mojej starej maszynie deweloperskiej, o której chciałem poinformować ludzi).

Crypth
źródło
3

Zamiast używać Instalatora platformy internetowej. Pobierz plik WebDeploy.exe z witryny internetowej i zainstaluj go na serwerze z opcją Complete package.

To rozwiąże problem.

FAHID
źródło
1

Ponadto może być konieczne udzielenie dostępu do usługi zarządzania siecią Web

Miałem również problem, że Visual Studio (2013) nie mógł zaktualizować aplikacji na moim serwerze (Windows 2012 R2 IIS 8.5). Dodałem komponenty ręcznie, jak opisano powyżej, ale to nie rozwiązało problemu. Potem znalazłem ten artykuł .

Zasadniczo mówi, że usługa zarządzania siecią jest zalogowana jako usługa lokalna, która nie ma praw dostępu do katalogu Inetpub. Nadanie uprawnień do usługi lokalnej rozwiązało problem za mnie.

Kapitanie Dashenka
źródło
1

Mam ten sam problem. Rozwiązałem ten problem przez „Restart-Service wmsvc”.

Evgeny Ponamarev
źródło
1
Hej, zagłosowałem za twoim pytaniem, ponieważ wydaje się pomóc, ponieważ jest to twoja pierwsza odpowiedź tutaj, byłoby wspaniale, gdybyś mógł następnym razem napisać trochę więcej. Jeszcze tylko kilka słów, całe zdania są naprawdę mile widziane :)
Tim Cadenbach
-1

Użyto tylko uwierzytelniania systemu Windows. Wdrożenie internetowe 3.5. I tylko certyfikat WMSVC, który jest ustawiony w ikonie usługi zarządzania ikony serwera najwyższego poziomu.

pat capozzi
źródło