Właśnie zaktualizowałem mój serwer (Windows 2012R2) do .Net Core 1.0 RTM
pakietu Windows Hosting z poprzedniego .Net Core 1.0 RC2
. Moja aplikacja działa na moim komputerze bez żadnych problemów, ale serwer ciągle wyświetla:
HTTP Error 502.5 - Process Failure
Common causes of this issue:
The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port
Wcześniej działał z wersją RC2. Nie wiem, co może się nie udać.
To jest wszystko, co mówi przeglądarka zdarzeń:
Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.
najgorsze jest to, że dzienniki aplikacji są puste! Chodzi mi o to, że te pliki stdout_xxxxxxxxx.log są całkowicie puste i wszystkie mają rozmiar 0 bajtów.
Co powinienem zrobić?? Jak mogę poznać przyczynę błędu, jeśli nie jest on zarejestrowany?
c#
iis
asp.net-core
windows2012
Vahid Amiri
źródło
źródło
Failed to start process with commandline 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Error Code = '0x80004005'.
- ten sam wiersz polecenia i kod błędu, który zgłaszasz. Po drugie, tylko dlatego, że działa na twoim komputerze, ale nie na komputerze zdalnym, wskazuje, że na serwerze jest coś innego. Byłoby to pomocne, gdybyś mógł rozszerzyć informacje na temat sposobu wdrażania aplikacji na serwerze.Odpowiedzi:
Udało mi się to naprawić, uruchamiając
w wierszu polecenia, co dało mi znacznie bardziej znaczący błąd:
Jak widać, na moim serwerze zainstalowano niewłaściwą wersję NET Core. Mogłem uruchomić moją aplikację po odinstalowaniu poprzedniej wersji 1.0.0 i zainstalowaniu poprawnej wersji 1.0.1.
źródło
Miałem ten sam problem, w moim przypadku było to niewystarczające pozwolenie na tożsamość użytkownika mojej puli aplikacji, na stronie Publikowanie w usługach IIS w dokumencie asp.net, istnieje kilka powodów tego błędu:
buildOptions
odproject.json
sprzeczny z publikowania RID. Na przykład nie określaj platformy x86 i publikuj z RID win81-x64 (dotnet publish -c Release -r win81-x64
). Projekt opublikuje bez ostrzeżenia lub błędu, ale zakończy się niepowodzeniem z powyższymi zarejestrowanymi wyjątkami na serwerze.processPath
atrybut<aspNetCore>
elementu w web.config, aby potwierdzić, że takdotnet
to aplikacja przenośna lub. \ My_application.exe - aplikacja samodzielna.dotnet.exe
może nie być dostępna za pośrednictwem ustawień PATH. Potwierdź, żeC:\Program Files\dotnet\
istnieje w ustawieniach ŚCIEŻKI systemu.dotnet.exe
może nie być dostępna dla tożsamości użytkownika puli aplikacji. Upewnij się, że tożsamość użytkownika AppPool ma dostęp doC:\Program Files\dotnet
katalogu..UseIISIntegration()
metodę aplikacjiWebHostBuilder()
..UseUrls()
metody rozszerzenia podczas samodzielnego hostowania z Kestrel, potwierdź, że jest ona umieszczona przed.UseIISIntegration()
metodą rozszerzającąWebHostBuilder()
..UseIISIntegration()
należy ustawićUrl
dla zwrotnego serwera proxy podczas uruchamiania Kestrel za usługami IIS i nie może mieć zastępowanej wartości przez.UseUrls()
.W moim przypadku był to czwarty powód, zmieniłem go, klikając prawym przyciskiem myszy moją pulę aplikacji, aw ustawieniach zaawansowanych w obszarze Model procesu ustawiłem tożsamość na użytkownika z wystarczającymi uprawnieniami:
źródło
Failed to start process with commandline '"dotnet" .\PROJECT.dll', ErrorCode = '0x80070002'
.dotnet
był na mojej ścieżce, ale wymagał ponownego uruchomienia serwera, aby został rozpoznany.Mam to działając z twardym resetem IIS (właśnie zainstalowałem pakiet hostingowy).
Okazuje się, że samo naciśnięcie przycisku „Uruchom ponownie” w Menedżerze usług IIS nie wystarczy. Musiałem tylko otworzyć wiersz polecenia i wpisać „iisreset”
źródło
LocalSystem
Dostałem więc nowy serwer, tym razem jest to Windows 2008R2 i moja aplikacja działa dobrze.
Nie mogę powiedzieć na pewno, jaki był problem ze starym serwerem, ale mam jeden pomysł.
Ponieważ wcześniej skompilowałem aplikację bez żadnej platformy, dała mi
dll
wersję, która działa tylko wtedy, gdy docelowy host ma.Net Core Windows Hosting
zainstalowany pakiet. W moim przypadku został zainstalowany i to było w porządku .Po tym, jak aplikacja nie działała, zdecydowałem się skompilować ją jako aplikację konsolową ze
win7-x64
środowiskiem wykonawczym. Tym razem w momencie, gdy uruchomiłemexe
moją aplikację na serwerze, zawiesiła się z błędem dotyczącym brakującej biblioteki DLL:Ta biblioteka dll pochodzi z uniwersalnego środowiska wykonawczego języka C, które jest zawarte w pakiecie redystrybucyjnym Visual C ++ dla programu Visual Studio 2015 .
Próbowałem zainstalować ten pakiet (zarówno x64, jak i x86), ale za każdym razem kończyło się to niepowodzeniem (nie wiem dlaczego) w systemie Windows Server 2012 R2.
Ale kiedy próbowałem zainstalować je na nowym serwerze, Windows Server 2008 R2, pomyślnie się zainstalowały. To mógł być powód tego, ale nadal nie mogę powiedzieć na pewno.
źródło
Miałem ten sam problem podczas publikowania aplikacji internetowej. Jeśli ktoś nadal ma ten problem, rozwiązał go, zmieniając {AppName} .runtimeconfig.json
Zmień wersję z „wersja”: „1.1.2” na „wersja”: „1.1.1” i wszystko działało dobrze
źródło
Miałem ten sam problem.
Aby znaleźć dokładne jego źródło włączyłem logowanie do pliku web.config:
i utworzył podfolder logów w folderze głównym MyWebService.
Po ponownym uruchomieniu IIS i próbie uruchomienia API wystąpił błąd i brakowało odpowiedniego Core Runtime. Po pobraniu instalacji DotNetCore.1.0.5_1.1.2-WindowsHosting błąd zniknął.
źródło
Miał ten sam problem i wszystkie rozwiązania nie działały. Znalazłem ten klejnot i pomyślałem, że przejdę dalej, jeśli pomoże to komuś innemu. Zainstaluj na serwerze 2012 R2, otrzymując błąd braku biblioteki DLL, spróbuj ponownie zainstalować VS C ++ 2015 i otrzymaj błąd. Poprawka polega na wykonaniu następujących czynności:
Wygląda na to, że plik
C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu
ma problemy z instalacją. Otwórz wiersz polecenia administratora, wykonaj:UWAGA: zastąp „...” poprawną nazwą folderu. Następnie zainstaluj ponownie pakiet VS C ++ 2015.
źródło
Miałem podobny problem i cytując Sherlocka Holmesa: „ kiedy wyeliminowałeś niemożliwe, cokolwiek pozostaje, jakkolwiek nieprawdopodobne, musi być prawdą? ”
Sprawdziłem, czy docelowa platforma .NET jest zainstalowana na serwerze i okazuje się, że tak nie jest. Zainstalowałem 4.6.2 .NET Framework i zadziałało.
źródło
Ten problem wystąpił na moim serwerze produkcyjnym po automatycznej aktualizacji mojego projektu VS do .NET Core 1.1.2.
Po prostu zainstalowałem środowisko uruchomieniowe 1.1.2 .net core na moim serwerze produkcyjnym: https://www.microsoft.com/net/download/core#/runtime
źródło
ROZWIĄZANE Właśnie dzisiaj napotkałem ten sam problem podczas wdrażania do platformy AZURE . Następnie wypróbowałem to samo dla lokalnych usług IIS, napotkałem ten sam problem. Ponieważ jestem nowy w .net CORE, zmagałem się kilka godzin, zanim faktycznie go rozwiązałem.
W naszym rozwiązaniu, po opublikowaniu w IIS, zauważyłem mój plik web.confile, szczególnie poniżej linii
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
W naszym folderze wdrożeniowym wygenerowany plik web.config wygląda następująco:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
Teraz PROSZĘ spróbuj zmienić powyższą konfigurację w rozwiązaniu Visual Studio na
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
W naszym nowym folderze wdrożeniowym wygenerowany plik web.config wygląda następująco:
<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
I to rozwiązało mój problem, mam nadzieję, że to pomoże.
źródło
processPath="dotnet"
sięprocessPath="C:\Program Files\dotnet\dotnet.exe"
. wtedy zadziałało.Miałem ten sam problem, kiedy zaktualizowałem moją maszynę deweloperską do Core 1.0.1, ale zapomniałem zaktualizować serwer.
źródło
dotnet .\YOURPROJDLL.dll
Otrzymałem błąd HTTP 502.5 podczas próby opublikowania mojego interfejsu API .NET Core 2.0 w AWS EB i rozwiązałem go, dodając następujący kod do pliku .csproj:
źródło
Miałem ten sam problem. Zmieniłem tożsamość puli aplikacji na konto usługi sieciowej. Następnie wyraźnie ustawiłem ścieżkę do dotnet.exe w pliku web.config, aby aplikacja działała poprawnie, jak powiedział @danielyewright na swoim githubie komentarza. Działa po ustawieniu ścieżki.
Dzięki
źródło
Udostępnianie, że w moim przypadku ten błąd był spowodowany tym, że zapomniałem zaktualizować plik project.json za pomocą:
źródło
Miałem ten sam błąd, z tymi samymi problemami, które opisał VSG24 w Propozycji odpowiedzi - nieprzyjemny komunikat o błędzie podczas wpisywania `` dotnet '' w CMD:
Rozwiązałem to, ręcznie instalując następujące 2 aktualizacje w systemie Windows Server 2012 R2 (wraz z wymaganiami wstępnymi i wszystkimi innymi aktualizacjami połączonymi - przeczytaj uważnie instrukcje instalacji w witrynie firmy Microsoft):
Mam nadzieję, że to komuś pomoże.
źródło
Napotkałem ten sam problem, gdy próbowałem opublikować wersję debugowania mojej aplikacji internetowej. Ten zestaw plików nie zawierał pliku
web.config
o prawidłowej wartości atrybutuprocessPath
.Wziąłem ten plik z wersji Release, wartość została przypisana do ścieżki do mojego pliku exe.
źródło
W moim przypadku był problem z wersją Net Core zainstalowaną na serwerze. Po prostu instaluję tę samą wersję, co na moim komputerze deweloperskim i wszystko jest w porządku :-)
źródło
Musiałem zainstalować najnowszą wersję .net Core znalezioną tutaj . Nie ma potrzeby ponownego uruchamiania witryny lub serwera
źródło
Rozwiązałem to, dodając „uprawnienia do edycji” do aplikacji serwisu, mapowałem do katalogu fizycznego, a następnie wybrałem użytkownika systemu Windows, który mógłby mieć dostęp do tego folderu głównego. (prywatna sieć).
źródło
W moim przypadku po zainstalowaniu
AspNetCore.2.0.6.RuntimePackageStore_x64.exe
iDotNetCore.2.0.6-WindowsHosting.exe
muszę zrestartować serwer, aby działał bez błędu 502 złej bramy i proxy.AKTUALIZACJA:
Jest sposób, abyś mógł go użyć bez restartu: https://stackoverflow.com/a/50808634/3634867
źródło
Otwórz wiersz polecenia z poświadczeniami administratora
Wpisz następujące polecenie i naciśnij Enter
LUB
Otwórz program Visual Studio 2017 z poświadczeniami administratora
Wpisz następujące polecenie w konsoli Menedżera pakietów i naciśnij Enter
źródło
U mnie było to spowodowane zainstalowaniem różnych wersji .Net Core. Dopasowałem mój serwer deweloperski i produkcyjny i zadziałało.
źródło
Miałem również ten problem (błąd wystąpił zarówno na VS 15, jak i 17). Jednak na VS15 zwrócił
CONNECTION_REFUSED
błąd, a na VS17 zwróciłASP.NET Core 1.0 on IIS error 502.5
.NAPRAWIĆ
Przejdź do katalogu swojego projektu i znajdź ukryty folder
.vs
(znajduje się w katalogu projektów). (Pamiętaj, aby pokazać ukryte pliki / foldery)Zamknij VS
źródło
Oto, do czego doszedłem, a stało się to niedawno w systemie Windows 10 po zainstalowaniu aktualizacji. Z tego, co zebrałem, zainstalowano aktualizację programu Windows Defender, która zakładała, że mój plik „Project.dll” (podstawowy projekt asp.net) zachowywał się jak wirus, więc został usunięty.
Tak więc jedną z pierwszych rzeczy, które proponuję zrobić przed rozpoczęciem instalowania / odinstalowywania programów, jest sprawdzenie, czy plik „Project.dll” jest tam, gdzie powinien.
Skopiuj go z powrotem do lokalizacji, jeśli już jej nie ma.
Jeśli masz trudności z skopiowaniem pliku z powrotem, dodaj wykluczenie do folderu projektu w programie Windows Defender . ( Dowiedz się, jak to zrobić tutaj .)
To zadziałało dla mnie natychmiast i powtórzyłem to na wielu serwerach aplikacji.
źródło
Dla mnie było to, że connectionString w Startup.cs był pusty w:
i był pusty, ponieważ aplikacja nie szukała parametrów połączenia w pliku appsettings.json.
Musiałem zmienić Program.cs na:
źródło
Nie mam pojęcia, dlaczego to zadziałało, ale używam uwierzytelniania systemu Windows i miałem ten fragment kodu na moim
BuildWebHost
wProgram.cs
:Po usunięciu tego
.UserHttpSys
bitu działa i nadal mogę uwierzytelniać się jako użytkownik domeny.BuildWebHost
teraz wyglądaźródło
Otrzymałem ten sam błąd i odkryłem, że problem polegał na tym, że podczas publikowania na platformie Azure mój plik web.config został zmodyfikowany, więc następująca linia zakończyła się następująco:
Problemem dla produkcji jest zawartość argumentów: „-argFile IISExeLauncherArgs.txt”
Wygląda na to, że ten problem zostanie rozwiązany w następnym zestawie .NET Core SDK (obecnie w wersji zapoznawczej), ale na razie obejściem jest dodanie tego bloku do pliku .csproj:
Spowoduje to zmodyfikowanie pliku web.config i usunięcie problematycznej części do publikacji.
Odniesienie: https://github.com/aspnet/websdk/issues/242
Mam nadzieję, że to pomoże.
źródło
U mnie zadziałało po zmianie konfiguracji publikowania.
źródło
Miałem podobny problem (Asp.Net Core 2.x), który był spowodowany próbą uruchomienia 32-bitowej aplikacji asp.net core w usługach IIS na 64-bitowym serwerze Windows. Główną przyczyną było to, że plik web.config, który jest generowany automatycznie (jeśli projekt nie zawiera jawnie jednego, którego projekty podstawowe asp.net nie zawierają domyślnie) nie zawiera pełnej ścieżki do pliku wykonywalnego dotnet. Po zainstalowaniu pakietu hostingowego na komputerze 64-bitowym zainstaluje on 64 i 32-bitowe wersje dotnet, ale ścieżka zostanie domyślnie rozwiązana na 64-bitową, a 32-bitowa aplikacja asp.net core nie zostanie załadowana. W przeglądarce możesz zobaczyć błąd 502.5, a jeśli spojrzysz na dziennik zdarzeń serwera, możesz zobaczyć kod błędu 0x80004005. Jeśli spróbujesz uruchomić dotnet.exe z wiersza polecenia w celu załadowania biblioteki DLL aplikacji asp.net core na tym serwerze, może zostać wyświetlony błąd, taki jak „BadImageFormatException” lub „
źródło
Mam ten sam problem, a powodem w moim przypadku było to, że rdzeń EF próbował odczytać parametry połączenia z
appsettings.development.json
pliku. Otworzyłem go i stwierdziłem, że parametry połączenia zostały skomentowane.Następnie zwolniłem je jak poniżej i problem został rozwiązany:
źródło