Beim Versuch, die Prozess-ID des DNX-Prozesses zu ermitteln, auf dem sich Ihre Anwendung befindet, ist ein Fehler aufgetreten

101

Ich erhalte diese Fehlermeldung, wenn ich versuche, die Anwendung zu starten.

Beim Versuch, die Prozess-ID des DNX-Prozesses zu ermitteln, auf dem sich Ihre Anwendung befindet, ist ein Fehler aufgetreten

Gibt es eine Möglichkeit, das Problem zu beheben?

Domysee
quelle

Antworten:

151

Für mich wurde das Problem gelöst, indem Visual Studio geschlossen und gelöscht wurde

project.lock.json

und Visual Studio erneut starten.

Bearbeiten : Ich habe RC1 verwendet.

Frode Lillerud
quelle
2
Ich habe mein Problem im RC1-Projekt gelöst
Nadav Hury,
@ NadavHury Gleiche hier :)
ManyRootsofAllEvil
1
Gelöst ist das Problem , das ich mit Beispiel RC1 App heruntergeladen hatte Plural, sehr geschätzt
tomRedox
5
das funktioniert nicht mehr np microsoft. Wir werden es herausfinden. immer wieder und ... WIEDER
1
wo ist project.lock.json?
CodyBugstein
34

Microsoft hat das Hosting-Modell wie in den Versionshinweisen beschrieben geändert .

In project.jsonersetzen die Abhängigkeit

"Microsoft.AspNet.Server.IIS": "1.0.0-beta7"

mit

"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8"


In web.configder handlersSektion entfernt jeden Eintrag außer

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

Das Ganze web.configwird so aussehen:

<?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: Während der Verwendung von RC1 hatte ich den Fehler nach dem Verschieben des Lösungsordners. Nach dem Löschen der Ordner binund objfunktionierte alles wieder.
Wie der Benutzer 764754 feststellte, kann auch ein einfacher Neustart von Visual Studio hilfreich sein.

Domysee
quelle
Im neuen Hosting-Modell verwenden Sie web.config überhaupt nicht und können es vollständig entfernen. Der httpPlatformHandler und Startup.cs ersetzen web.config, da Sie IIS bis zu einem gewissen Grad umgehen.
Cygnim
2
Ich verwende die neuesten Vorlagen, nachdem ich zuerst 1.0.0-beta8 installiert und dann ein neues ASP.NET-Projekt in VS 2015 erstellt habe. Alle Einträge sind korrekt, dennoch wird der gleiche Fehler wie bei Domysee angezeigt. Könnte jemand bitte erklären, was "% DNX_PATH%" und "% DNX_ARGS%" bedeuten?
Okieh
1
Ich sollte klarstellen, dass Sie in Ihrem Projekt keine web.config benötigen. Während der Kompilierung wird eine minimale web.config-Datei generiert, die im Grunde den HttpPlatformHandler zur Pipeline hinzufügt und den Datenverkehr von IIS zum Kestrel-Server leitet. Sie haben also Recht, es gibt eine web.config-Datei, die jedoch in Ihrer Projektcodebasis nicht erforderlich ist.
Cygnim
3
Nur VS neu zu starten hat es für mich mit RC-1 getan, ohne dass Löschungen erforderlich waren.
user764754
2
Ich hatte das gleiche Problem mit RC1. Die Lösung für mich bestand darin, die web.config (in wwwroot) zu löschen
rad
30

Für andere Personen mit diesem Problem, in Fällen, in denen die anderen Lösungen nicht funktionieren, habe ich die Antwort in diesem Thread gefunden: Erzwingen der Verwendung von SSL: Beim Versuch, die Prozess-ID des DNX-Prozesses zu ermitteln, der Ihre Anwendung hostet, ist ein Fehler aufgetreten

Wenn Ihr Projekt SSL verwendet oder erzwingt, führen Sie es zuerst ohne Debugging (STRG + F5) aus. Anschließend werden Sie aufgefordert, ein lokales SSL-Zertifikat zu generieren. Danach funktioniert das Debuggen und der Fehler ist behoben.

Radosław Chybicki
quelle
Das hat es für mich behoben. Ich hatte mein Projekt auf einen neuen Computer migriert, auf dem das Zertifikat nicht installiert war. Vielen Dank.
Pace
Schön, das war es! Ich werde dies auf der Seite "Aktivieren der Authentifizierung über Facebook ..." vermerken, da die Anweisungen das Erzwingen von SSL beinhalten.
N8allan
Ich konnte es nicht mit STRG + F5 zum Laufen bringen. F5 hat nach dieser Ausführung funktioniert , um meinen iis Express-Zertifikaten zu vertrauen. Ich hatte keine Warnungen, aber das hat es für mich behoben.
Josh Close
11

Für das, was es wert ist, ist dies eine generische Fehlermeldung , die als roter Hering für eine beliebige Anzahl von Problemen dienen kann, bei denen der httpPlatformHandler die angegebene ausführbare Datei (in diesem Fall dnx) nicht starten kann.

In meinem Fall habe ich diesen Fehler als direkte Folge eines Missverständnisses der Datei launchSettings.json erhalten. Ich habe versucht, den https-Endpunkt für meine Anwendung zu aktivieren, und versehentlich den sslport in meiner applicationUrl dupliziert. Soweit ich weiß, sollte die applicationUrl der http-Hostname / Port der Anwendung sein. Durch Ausfüllen des sslPort wird die IIS Express-Umgebung so konfiguriert, dass sie auf https für den in der applicationUrl angegebenen Hostnamen auf dem in sslPort angegebenen Port wartet.

Beispielsweise:

  "iisSettings": {
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "iisExpress": {
       "applicationUrl": "http://localhost:44000",
       "sslPort": 44300
      }
  }

Bietet die folgenden zwei Endpunkte auf localhost.

  • HTTP über Port 44400
  • HTTP über Port 44300

Wenn Sie in den Einstellungen applicationUrl und sslPort denselben Port haben, wird der mit diesem Thread verknüpfte Fehler angezeigt.

Dies gilt für mich auf RC1

Jonathan Mast
quelle
Warum sollte sich sslPort von applicationUrl unterscheiden? Es funktionierte für mich bis RTM ...
Boris Lipschitz
Ich hatte den Fehler: Es konnte keine Verbindung zum Webserver 'IIS Express' hergestellt werden. Nach dem Löschen der Datei "\ .vs \ config \ applicationhost.config" wurde der Fehler "Es ist ein Fehler beim Versuch aufgetreten ..." angezeigt. In Projekt Eigenschaften> Debuggen habe ich SSL deaktiviert, den Debugger ausgeführt (funktioniert), das SSL erneut angekreuzt und die URL in "App URL" kopiert. Das Debuggen im SSL-Modus funktioniert wieder. Der Fehler trat nach einem Windows-Update auf, nicht sicher, ob dies die Ursache war. Meine iisSettings sind jetzt "iisExpress": {"applicationUrl": " localhost: 44369 ", "sslPort": 44369} .. es funktioniert, wenn die Portnummern nicht gleich sind
JimiSweden
6

Es ist möglich, ein Upgrade durchzuführen. Ich musste die neuen aktualisierten Vorlagen hier durchsehen .

Aktualisieren Sie Ihre web.config in wwwroot, um Folgendes einzuschließen:

<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>

Sie müssen auch die Art und Weise ändern, wie das Projekt mit Kestrel debuggt , indem Sie Ihre project.json ändern :

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}

und ändern Sie Ihre hosting.ini

server=Microsoft.AspNet.Server.Kestrel

und Hinzufügen dieser zur Configure-Methode in startup.cs

// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler(); 

Durch Hinzufügen dieser Referenzen sollten Sie das Projekt ausführen können.

Ben M.
quelle
5

Ich bin auf dieses Problem gestoßen, weil die Projektkonfiguration versucht hat, https: // localhost anstelle von http zu starten . Klicken Sie mit der rechten Maustaste auf das Webprojekt unter "Debuggen" und stellen Sie "App-URL" auf http anstelle von https ein. Geben Sie hier die Bildbeschreibung ein

Eine andere Möglichkeit, dies zu umgehen, bestand darin, den Launcher von "IIS Express" auf "Web" umzustellen.

Mike S.
quelle
3

In Visual Studio:

Während ich diesem Tutorial folgte, erhielt ich einen ähnlichen Fehler.

Zuerst erhielt ich den Fehler: "Beim Versuch, die Prozess-ID von dotnet.exe zu ermitteln, ist ein Fehler aufgetreten ..." Ich habe die folgenden Schritte ausgeführt.

  1. Ich habe meine Anwendung gestartet, ohne STRG + F5 zu debuggen.
  2. Mir wurde dann die Option angeboten, ein selbstsigniertes Zertifikat für localhost zu akzeptieren.
  3. Ich habe die Anweisungen befolgt und konnte dann meine Anwendung mit der AppUrl aufrufen, die ich nach dem Aktivieren von SSL in den Projekt-Debug-Einstellungen kopiert habe.

Beim Versuch, diesen Fehler zu beheben, bin ich auch auf diesen Fehler gestoßen. "Beim Versuch, die Prozess-ID des DNX-Prozesses zu ermitteln, auf dem Ihre Anwendung gehostet wird, ist ein Fehler aufgetreten."

Dies wurde dadurch verursacht, dass eine andere Instanz der Anwendung ausgeführt wurde.

Ich hoffe diese Antwort hilft jemandem.

Eric
quelle
Warten Sie, damit die Antwort "durch das Ausführen einer anderen Instanz der Anwendung verursacht wird"? Sollte dies sofort deutlicher machen.
Bloodied
2

In meinem Fall in einem asp net core 1.1, .net Framework 4.5.2-Projekt bezog sich der Fehler nicht auf dnx, da dies nicht mehr der Fall ist. Stattdessen bezog es sich auf den Projektnamen exe. Eine andere Version des Fehlers bezog sich darauf, einfach keine Verbindung zu iis express herstellen zu können.

Das Problem war die Einführung einer kanonischen Regel zum Umschreiben von Hostnamen , mit der versucht wird, alle Verbindungen zu einem Hostnamen zu zwingen, der mit www beginnt. zB Weiterleiten von gty.org an www.gty.org, um unserem SSL-Zertifikat zu entsprechen. Dies ist in der Produktion in Ordnung, aber Sie können https: // localhost: 44347 / nicht zwingen , mit www zu beginnen, und erwarten, dass iis express damit umgehen kann.

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

Die Lösung bestand darin, die Regel beim Ausführen in Visual Studio zu kommentieren oder eine Bedingung hinzuzufügen:

<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
W Pearson
quelle
2

Angenommen, Sie führen IIS Express mit aktiviertem SSL aus. Abhängig von Ihrer Installation müssen Sie Ihr IIS Express-Entwicklungszertifikat (ausgestellt an "localhost" / ausgestellt von "localhost") entweder in [Lokaler Computer \ Personal \ Zertifikate] oder [Lokaler Computer] ablegen \ Vertrauenswürdige Stammzertifizierung \ Zertifikate]. Eine davon sollte funktionieren. (Unter Windows 10 + VS2015). HTH

Nathan Noble
quelle
Das Hinzufügen des IIS Express-Entwicklungszertifikats unter Lokaler Computer \ Vertrauenswürdige Stammzertifizierung \ Zertifikate hat die Aufgabe für mich erledigt. Vielen Dank! (Für alle anderen, in meinem Fall hatte ich bereits das Zertifikat in Local Computer \ Personal \ Certificates)
David Aleu
1

Überprüfen Sie die Datei web.config auf ungültige Einträge. Wenn ich beispielsweise das Tag "entityFramework" dort habe, verursacht dies dieses Problem für mich.

Victor Stagurov
quelle
1

Ich hatte dieses Problem beim Umschalten der Einstellungen und habe die Option " Anonyme Authentifizierung aktivieren " unter Projekt> Eigenschaften> Debug deaktiviert . Stellen Sie sicher, dass es aktiviert ist. Schließen Sie das Projekt, starten Sie es neu und versuchen Sie es erneut. Hoffe das hilft.

wolfQueen
quelle
Ich hatte das gleiche Problem, aber anstatt nur anonym zu aktivieren, musste ich entweder die anonyme oder die Windows-Authentifizierung aktivieren. Wenn beide falsch waren, bekam ich den Fehler.
Birken25
1

Ich habe RC1 und EF First Code Approach verwendet. Eine gute Idee, um die Untersuchung zu starten, besteht darin, das Projekt mit der Option "Projekt ohne Debbug starten" (Strg + F5) auszuführen. Dann erhalte ich einen aussagekräftigeren Fehler: "Der Konfigurationsabschnitt 'entityFramework' kann nicht gelesen werden, da eine Abschnittsdeklaration fehlt." Bei mir hat es wegen der Datei web.config nicht funktioniert.

Jaryn
quelle
1
  1. Aktualisieren Sie dnvm
  2. Ändern Sie die SDK-Version von global.json als Standardversion des DNVM
  3. Sie müssen project.json oder project.lock.json nicht berühren
Shuang Gao
quelle
0

Beim Upgrade von Beta7 -> Beta8 hatte ich dieses Problem und die Vorschläge von Ben M und Domysee haben für mich funktioniert. Einer meiner Kollegen hatte jedoch immer noch Probleme, unser Projekt auszuführen, das dnxcore50nur auf Ziele abzielt. Wenn Sie sicherstellen, dass Sie die folgenden Befehle ausgeführt haben:

dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86

Es war insbesondere der zweite Befehl, der ihn auf seiner Maschine reparierte. Sie können auch überprüfen, ob dieser Ordner Folgendes enthält dnx.exe:

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

Ich habe gerade ein weiteres Problem entdeckt, das dies verursacht hat!

web.configIn Project Root gab es einige zweifelhafte Regeln zum Umschreiben von IIS-URLs, um HTTPS durchzusetzen. Das Entfernen dieser Regeln löste das Problem.

Ignas
quelle
0

Es gibt einfach so viele Dinge, die diesen Fehler verursachen können. Hier sind einige, die für mich funktioniert haben:

  1. Löschen web.configSie einfach die in Ihremwwwroot Ordner. Es wird beim Kompilieren korrekt neu erstellt.
  2. Wenn Sie versuchen, SSLund in Ihrem IIS Expressund SSL Certin den Trusted Root Certification AuthoritiesOrdner zu verschieben, hat dies nicht funktioniert. Auf der DebugRegisterkarte des PropertiesProjekts, das Sie ausführen möchten. Deaktivieren Sie das Enable SSLKontrollkästchen und klicken Sie erneut darauf, um es zu aktivieren und einen anderen Port zu erhalten. Möglicherweise müssen Sie dies einige Male tun.
Serj Sagan
quelle
0

Eine weitere mögliche Lösung
Für alle, die mit SSL-Einstellungen spielen, habe ich festgestellt, dass nur der SSL-Port im geändert wurdelaunchSettings.json das Problem durch Datei in einen anderen nahe gelegenen Port behoben.

Zu Ihrer Information, ich konnte über den ursprünglichen Port nichts auf dem Computer finden, und ich habe auch keinen Fehler bei der Verwendung des Ports erhalten.

Ben Cull
quelle