Wystąpił błąd podczas próby określenia identyfikatora procesu DNX obsługującego aplikację


101

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:


151

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.


2
Rozwiązałem mój problem w projekcie RC1
Nadav Hury

@NadavHury To samo tutaj :)
ManyRootsofAllEvil

1
Rozwiązałem problem, który miałem z przykładową aplikacją RC1 pobraną z PluralSight, bardzo cenioną
tomRedox

5
to już nie działa. np microsoft. rozwiążemy to. raz po raz i ... ZNOWU

1
gdzie jest project.lock.json?
CodyBugstein

34

Firma Microsoft zmieniła model hostingu zgodnie z opisem w informacjach o wersji .

W project.jsonzamian za zależność

„Microsoft.AspNet.Server.IIS”: „1.0.0-beta7”

z

„Microsoft.AspNet.Server.Kestrel”: „1.0.0-beta8”


W web.configw handlerssekcji usunąć każdy wpis z wyjątkiem

<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />

Całość web.configbę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 bini objwszystko działało ponownie.
Jak zauważył user764754, proste ponowne uruchomienie programu Visual Studio również może pomóc.


W nowym modelu hostingu w ogóle nie używasz web.config i możesz go całkowicie usunąć. HttpPlatformHandler i Startup.cs zastępują web.config, ponieważ do pewnego stopnia pomijasz usługi IIS.
cygnim

2
Korzystam z najnowszych szablonów najpierw po zainstalowaniu 1.0.0-beta8, a następnie utworzeniu nowego projektu ASP.NET w VS 2015. Wszystkie wpisy są poprawne, nadal pojawia się ten sam błąd co Domysee. Czy mógłby ktoś wyjaśnić, co oznaczają „% DNX_PATH%” i „% DNX_ARGS%”?
okieh

1
Powinienem wyjaśnić, że nie potrzebujesz pliku web.config w swoim projekcie. Podczas kompilacji generowany jest minimalny plik web.config, który zasadniczo dodaje HttpPlatformHandler do potoku i kieruje ruch z usług IIS do serwera Kestrel. Więc masz rację, istnieje plik web.config, ale nie jest to konieczne w bazie kodu projektu.
cygnim

3
Samo ponowne uruchomienie VS zrobiło to dla mnie z RC-1 bez konieczności usuwania.
user764754

2
Miałem ten sam problem z RC1, rozwiązaniem dla mnie było usunięcie pliku web.config (w wwwroot)
rad

30

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.


To naprawiło to dla mnie. Przeniosłem swój projekt na nowy komputer, na którym nie był zainstalowany certyfikat. Dzięki.
Tempo

Fajnie, to było to! Zwrócę uwagę na to na stronie „Włączanie uwierzytelniania przy użyciu Facebooka ...”, ponieważ ich instrukcje obejmują wymuszanie SSL.
N8allan

Nie mogłem go uruchomić, wykonując CTRL + F5. F5 pracował po uruchomieniu tego, aby zaufać moim certyfikatom iis express. Nie miałem żadnych ostrzeżeń, ale to naprawiło problem.
Josh Close

11

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.

  • Http przez port 44400
  • Https przez port 44300

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


Dlaczego sslPort powinien różnić się od applicationUrl? Kiedyś działało dla mnie do RTM ...
Boris Lipschitz

Wystąpił błąd: nie można połączyć się z serwerem sieciowym „IIS Express”, a po usunięciu pliku „\ .vs \ config \ applicationhost.config” pojawił się błąd „wystąpił błąd podczas próby ...”. W właściwości projektu> debug odznaczyłem SSL, uruchomiłem debugger (działający), ponownie zaznaczyłem SSL i skopiowałem adres URL do „App URL”, debugowanie w trybie SSL znów działa. Błąd pojawił się po aktualizacji systemu Windows, nie jestem jednak pewien, czy to była przyczyna. Moje ustawienia iisSettings to teraz „iisExpress”: {"applicationUrl": " localhost: 44369 ", "sslPort": 44369} .. działa, jeśli numery portów nie są takie same
JimiSweden

6

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.


5

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. wprowadź opis obrazu tutaj

Innym sposobem obejścia tego problemu było przełączenie programu uruchamiającego z „IIS Express” na „Web”


3

W programie Visual Studio:

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.

  1. Uruchomiłem moją aplikację bez debugowania CTRL + F5.
  2. Następnie przedstawiono mi opcję zaakceptowania certyfikatu z podpisem własnym dla hosta lokalnego.
  3. Postępowałem zgodnie z instrukcjami, a następnie mogłem odwiedzić moją aplikację za pomocą AppUrl, który skopiowałem po włączeniu SSL w ustawieniach debugowania projektu.

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.


Zaczekaj, więc odpowiedź brzmi „spowodowana uruchomieniem innej instancji aplikacji”? Powinno to od razu uczynić to bardziej oczywistym.
Bloodied

2

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" />

2

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


Dodanie certyfikatu programistycznego IIS Express w folderze Komputer lokalny \ Trusted Root Certification \ Certificates wykonało zadanie za mnie. Dzięki! (Dla kogokolwiek innego, w moim przypadku miałem już certyfikat w Local Computer \ Personal \ Certificates)
David Aleu

1

Sprawdź plik web.config pod kątem nieprawidłowych wpisów. Na przykład posiadanie tam tagu „entityFramework” powoduje ten problem.


1

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.


Miałem ten sam problem, ale zamiast tylko włączać anonimowe, musiałem włączyć uwierzytelnianie anonimowe lub Windows. Jeśli oba były fałszywe, otrzymałem błąd.
birken25

1

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.


1
  1. Zaktualizuj dnvm
  2. Zmień wersję pliku global.json sdk na domyślną wersję dnvm
  3. Nie ma potrzeby dotykania project.json ani project.lock.json

0

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 dnxcore50wyłą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.exew sobie:

%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-beta8\bin

0

Właśnie odkryłem jeszcze jeden problem, który to powodował!

web.configw katalogu głównym projektu były pewne podejrzane reguły przepisywania adresów URL w usługach IIS w celu wymuszenia protokołu HTTPS. Usunięcie tych reguł rozwiązało problem.


0

Jest tak wiele rzeczy, które mogą spowodować ten błąd. Oto kilka, które zadziałały dla mnie:

  1. Po prostu usuń web.configw swoim wwwrootfolderze. Zostanie poprawnie odtworzony podczas kompilacji.
  2. Jeśli próbujesz użyć SSLi w swoim IIS Expressi przeniesienie SSL Certdo Trusted Root Certification Authoritiesfolderu nie zadziałało. Na Debugkarcie Propertiesprojektu, który próbujesz uruchomić. Spróbuj usunąć Enable SSLzaznaczenie 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.

0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.