Otrzymuję ten komunikat o błędzie, gdy próbuję uruchomić aplikację.
Wystąpił błąd podczas próby określenia identyfikatora procesu DNX obsługującego aplikację
Czy istnieje sposób na rozwiązanie problemu?
Odpowiedzi:
U mnie problem został rozwiązany poprzez zamknięcie programu Visual Studio, usunięcie
project.lock.json
i ponownie uruchamiam Visual Studio.
Edycja : używałem RC1.
project.lock.json
?
Firma Microsoft zmieniła model hostingu zgodnie z opisem w informacjach o wersji .
W project.json
zamian za zależność
„Microsoft.AspNet.Server.IIS”: „1.0.0-beta7”
z
„Microsoft.AspNet.Server.Kestrel”: „1.0.0-beta8”
W web.config
w handlers
sekcji usunąć każdy wpis z wyjątkiem
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
Całość web.config
będzie wyglądać następująco:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>
RC1: Podczas korzystania z RC1 wystąpił błąd po przeniesieniu folderu rozwiązania. Po usunięciu folderów bin
i obj
wszystko działało ponownie.
Jak zauważył user764754, proste ponowne uruchomienie programu Visual Studio również może pomóc.
Dla innych osób mających ten problem, w przypadkach, w których inne rozwiązania nie działają - odpowiedź znalazłem w tym wątku: Forcing to use SSL: Wystąpił błąd podczas próby określenia identyfikatora procesu DNX obsługującego Twoją aplikację
Jeśli Twój projekt używa lub wymusza SSL, uruchom go najpierw bez debugowania (CTRL + F5), poprosi Cię o wygenerowanie lokalnego certyfikatu SSL, a następnie debugowanie zadziała, a błąd zniknie.
Warto wiedzieć , że jest to ogólny komunikat o błędzie, który może służyć jako czerwony ślad w przypadku wielu problemów, w których httpPlatformHandler nie może uruchomić danego pliku wykonywalnego (w tym przypadku dnx).
W moim przypadku otrzymałem ten błąd jako bezpośredni skutek niezrozumienia pliku launchSettings.json. Próbowałem włączyć punkt końcowy https dla mojej aplikacji i omyłkowo zduplikowałem port sslport w moim applicationUrl. Jak rozumiem, applicationUrl powinno być http hostname / port aplikacji, a wypełniając sslPort konfiguruje środowisko IIS Express tak, aby nasłuchiwało https na nazwie hosta podanej w applicationUrl na porcie podanym w sslPort.
Na przykład:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:44000",
"sslPort": 44300
}
}
Udostępnia następujące dwa punkty końcowe na hoście lokalnym.
Jeśli miałbyś mieć ten sam port w ustawieniach applicationUrl i sslPort, pojawi się błąd związany z tym wątkiem.
Dotyczy to mnie w RC1
Istnieje możliwość aktualizacji, stwierdziłem, że musiałem przejrzeć tutaj nowe zaktualizowane szablony .
Zaktualizuj plik web.config w wwwroot, aby zawierał:
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
Będziesz także musiał zmienić sposób debugowania projektu przy użyciu Kestrel , modyfikując plik project.json:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}
i modyfikując swój hosting.ini
server=Microsoft.AspNet.Server.Kestrel
i dodanie tego do metody Configure w pliku startup.cs
// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler();
dodanie tych odniesień powinno umożliwić uruchomienie projektu.
Trafiłem na ten problem, ponieważ konfiguracja projektu próbuje uruchomić https: // localhost zamiast http. Kliknij prawym przyciskiem myszy projekt internetowy w sekcji „Debuguj” i dostosuj „URL aplikacji” tak, aby był http zamiast https.
Innym sposobem obejścia tego problemu było przełączenie programu uruchamiającego z „IIS Express” na „Web”
Podążając za tym samouczkiem, otrzymałem podobny błąd.
Najpierw otrzymałem błąd: „Wystąpił błąd podczas próby określenia identyfikatora procesu dotnet.exe…” Wykonałem następujące czynności.
Próbując kilku rzeczy rozwiązać ten błąd, natknąłem się również na ten błąd. „Wystąpił błąd podczas próby określenia identyfikatora procesu DNX obsługującego Twoją aplikację”
Co było spowodowane uruchomieniem innej instancji aplikacji.
Mam nadzieję, że ta odpowiedź komuś pomoże.
W moim przypadku w projekcie asp net core 1.1, .net framework 4.5.2, błąd nie odnosił się do dnx, ponieważ tego już nie ma. Zamiast tego odnosił się do nazwy projektu exe. Inna wersja błędu dotyczyła po prostu niemożności połączenia się z iis express.
Problem polegał na wprowadzeniu kanonicznej reguły przepisywania nazwy hosta, która próbuje wymusić na wszystkich połączeniach posiadanie nazwy hosta zaczynającej się od www. np. przekierowanie gty.org na www.gty.org w celu zapewnienia zgodności z naszym certyfikatem ssl. To jest w porządku w produkcji, ale nie można zmusić https: // localhost: 44347 / do rozpoczynania od www i oczekiwać, że iis express będzie w stanie to obsłużyć.
<rule name="CanonicalHostNameAddwww" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" negate="true" pattern="^www\." />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}{HTTP_URL}" appendQueryString="false" redirectType="Permanent" />
</rule>
Rozwiązaniem było zakomentowanie reguły podczas uruchamiania w Visual Studio lub dodanie warunku:
<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
Zakładając, że korzystasz z usług IIS Express z włączonym protokołem SSL, w zależności od instalacji, będziesz musiał umieścić swój certyfikat programistyczny IIS Express (wystawiony na „localhost” / wystawiony przez „localhost”) w [Komputer lokalny \ Osobiste \ Certyfikaty] lub [Komputer lokalny] \ Trusted Root Certification \ Certificates]. Jeden z nich powinien działać. (W systemie Windows 10 + VS2015). HTH
Sprawdź plik web.config pod kątem nieprawidłowych wpisów. Na przykład posiadanie tam tagu „entityFramework” powoduje ten problem.
Miałem ten problem, gdy przełączam ustawienia i wyłączyłem opcję „ Włącz uwierzytelnianie anonimowe ” w projekcie> Właściwości> Debugowanie. Upewnij się, że jest włączony. Zamknij i ponownie uruchom projekt, a następnie spróbuj ponownie. Mam nadzieję że to pomoże.
Użyłem podejścia RC1 i EF First Code Approach. Dobrym pomysłem na rozpoczęcie badania jest uruchomienie projektu z opcją: „Rozpocznij projekt bez debbugowania” (Ctrl + F5). Wtedy pojawia się bardziej znaczący błąd: „Nie można odczytać sekcji konfiguracji„ entityFramework ”, ponieważ brakuje w niej deklaracji sekcji.” To nie zadziałało z powodu pliku web.config.
Podczas aktualizacji z beta7 -> beta8 miałem ten problem i sugestie dostarczone przez Bena M i Domysee zadziałały dla mnie. Jednak jeden z moich kolegów nadal miał problemy z realizacją naszego projektu, który jest przeznaczony dnxcore50
wyłącznie dla klienta . Jeśli upewnisz się, że uruchomiłeś następujące polecenia:
dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86
W szczególności było to drugie polecenie, które naprawiło go w jego maszynie. Możesz również dwukrotnie sprawdzić, czy ten folder ma dnx.exe
w sobie:
%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-beta8\bin
Jest tak wiele rzeczy, które mogą spowodować ten błąd. Oto kilka, które zadziałały dla mnie:
web.config
w swoim wwwroot
folderze. Zostanie poprawnie odtworzony podczas kompilacji.SSL
i w swoim IIS Express
i przeniesienie SSL Cert
do Trusted Root Certification Authorities
folderu nie zadziałało. Na Debug
karcie Properties
projektu, który próbujesz uruchomić. Spróbuj usunąć Enable SSL
zaznaczenie pola wyboru, a następnie kliknij je ponownie, aby włączyć je i uzyskać inny port. Być może będziesz musiał to zrobić kilka razy.Inne potencjalne rozwiązanie
Dla każdego, kto bawi się ustawieniami SSL, znalazłem po prostu zmianę portu SSL wlaunchSettings.json
pliku na inny pobliski port rozwiązała problem.
FYI, nie mogłem znaleźć niczego na komputerze przy użyciu oryginalnego portu, ani nie otrzymałem błędu w użyciu portu.