Une erreur s'est produite lors de la tentative de détermination de l'ID de processus du processus DNX hébergeant votre application

101

J'obtiens ce message d'erreur lorsque j'essaye de démarrer l'application.

Une erreur s'est produite lors de la tentative de détermination de l'ID de processus du processus DNX hébergeant votre application

Existe-t-il un moyen de résoudre le problème?

Domysee
la source

Réponses:

151

Pour moi, le problème a été résolu en fermant Visual Studio, en supprimant

project.lock.json

et redémarrer Visual Studio.

Edit : J'utilisais RC1.

Frode Lillerud
la source
2
Résolu mon problème dans le projet RC1
Nadav Hury
@NadavHury Same here :)
ManyRootsofAllEvil
1
J'ai résolu le problème que j'avais avec l'exemple d'application RC1 téléchargé à partir de PluralSight, très apprécié
tomRedox
5
cela ne fonctionne plus. np microsoft. nous le découvrirons. encore et encore et ... AGAIN
1
où est project.lock.json?
CodyBugstein
34

Microsoft a modifié le modèle d'hébergement comme décrit dans les notes de publication .

En project.jsonremplacement de la dépendance

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

avec

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


Dans web.configla handlerssection, supprimez toutes les entrées sauf

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

Le complet web.configressemblera à ceci:

<?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: Lors de l'utilisation de RC1, j'ai eu l'erreur après avoir déplacé le dossier de solution. Après avoir supprimé les dossiers binet, objtout a fonctionné à nouveau.
Comme l'a noté user764754, le simple redémarrage de Visual Studio peut également aider.

Domysee
la source
Dans le nouveau modèle d'hébergement, vous n'utilisez pas du tout web.config et pouvez le supprimer entièrement. Le httpPlatformHandler et Startup.cs supplantent web.config, car vous contournez IIS dans une certaine mesure.
cygnim
2
J'utilise les modèles les plus récents après avoir d'abord installé 1.0.0-beta8, puis créé un nouveau projet ASP.NET dans VS 2015. Toutes les entrées sont correctes, j'obtiens toujours la même erreur que Domysee. Quelqu'un pourrait-il expliquer ce que signifient «% DNX_PATH%» et «% DNX_ARGS%»?
okieh
1
Je devrais clarifier, vous n'avez pas besoin d'un web.config dans votre projet. Un fichier web.config minimal est généré lors de la compilation, ce qui ajoute essentiellement HttpPlatformHandler au pipeline et dirige le trafic depuis IIS vers le serveur Kestrel. Vous avez donc raison, il existe un fichier web.config, mais ce n'est pas nécessaire dans la base de code de votre projet.
cygnim
3
Le redémarrage de VS l'a fait pour moi avec RC-1, aucune suppression requise.
user764754
2
J'ai eu le même problème avec RC1, la solution pour moi était de supprimer le web.config (dans wwwroot)
rad
30

Pour les autres personnes ayant ce problème, dans les cas où les autres solutions ne fonctionnent pas - j'ai trouvé la réponse dans ce fil: Forcer à utiliser SSL: Une erreur s'est produite lors de la tentative de détermination de l'ID de processus du processus DNX hébergeant votre application

Si votre projet utilise ou applique SSL, exécutez-le sans débogage (CTRL + F5) d'abord, il vous demandera de générer un certificat SSL local, et après cela, le débogage fonctionnera et l'erreur disparaîtra.

Radosław Chybicki
la source
Cela a réglé le problème pour moi. J'avais migré mon projet vers un nouvel ordinateur sur lequel le certificat n'avait pas été installé. Merci.
Pace
Bien, c'était ça! Je vais le noter sur la page "Activation de l'authentification à l'aide de Facebook ...", car leurs instructions incluent le forçage de SSL.
N8allan
Je ne pouvais pas le faire fonctionner en faisant CTRL + F5. F5 a fonctionné après avoir exécuté ceci pour faire confiance à mes certificats express iis. Je n'avais aucun avertissement, mais cela a résolu le problème pour moi.
Josh Close
11

Pour ce que ça vaut, c'est un message d'erreur générique qui pourrait servir de hareng rouge à un certain nombre de problèmes où le httpPlatformHandler ne peut pas lancer l'exécutable donné (dnx dans ce cas).

Dans mon cas, j'ai reçu cette erreur en conséquence directe d'une mauvaise compréhension du fichier launchSettings.json. J'essayais d'activer le point de terminaison https pour mon application et j'ai dupliqué par erreur le sslport dans mon applicationUrl. Si je comprends bien, applicationUrl devrait être le nom d'hôte / port http de l'application et en remplissant le sslPort, il configure simplement l'environnement IIS Express pour écouter https sur le nom d'hôte donné dans l'applicationUrl sur le port fourni dans sslPort.

Par exemple:

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

Fournit les deux points de terminaison suivants sur localhost.

  • Http sur le port 44400
  • Https sur le port 44300

Si vous deviez avoir le même port dans les paramètres applicationUrl et sslPort, vous recevriez l'erreur associée à ce thread.

C'est vrai pour moi sur RC1

Jonathan Mast
la source
Pourquoi sslPort devrait-il être différent de applicationUrl? Cela fonctionnait pour moi jusqu'à RTM ...
Boris Lipschitz
J'ai eu l'erreur: impossible de me connecter au serveur Web 'IIS Express', et après avoir supprimé le fichier "\ .vs \ config \ applicationhost.config" j'ai eu l'erreur "une erreur s'est produite lors de la tentative ...". Dans le projet propperties> debug, j'ai décoché SSL, exécuté le débogueur (en fonctionnement), coché à nouveau SSL et copié l'URL dans "App URL", le débogage en mode SSL fonctionne à nouveau. L'erreur est apparue après une mise à jour de Windows, je ne sais pas si c'était la cause. Mes iisSettings sont maintenant "iisExpress": {"applicationUrl": " localhost: 44369 ", "sslPort": 44369} .. cela fonctionne si les numéros de port ne sont pas les mêmes
JimiSweden
6

Il est possible de mettre à niveau, j'ai trouvé que je devais parcourir les nouveaux modèles mis à jour ici .

Mettez à jour votre web.config dans wwwroot pour inclure:

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

Vous devrez également changer la façon dont le projet débogue à l' aide de Kestrel en modifiant votre project.json:

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

et modifier votre hébergement.ini

server=Microsoft.AspNet.Server.Kestrel

et en ajoutant ceci à la méthode Configure dans startup.cs

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

l'ajout de ces références devrait vous permettre d'exécuter le projet.

Ben M
la source
5

J'ai rencontré ce problème en raison de la configuration du projet en essayant de lancer https: // localhost au lieu de http. Faites un clic droit sur le projet Web, sous "Déboguer" et ajustez "URL de l'application" pour qu'elle soit http au lieu de https. entrez la description de l'image ici

Une autre façon de contourner ce problème consistait à faire passer le lanceur de "IIS Express" à "Web"

Mike S
la source
3

Dans Visual Studio:

En suivant ce tutoriel, j'ai reçu une erreur similaire.

Tout d'abord, j'ai reçu l'erreur: "Une erreur s'est produite lors de la tentative de détermination de l'ID de processus de dotnet.exe ..." J'ai suivi les étapes suivantes.

  1. J'ai démarré mon application sans déboguer CTRL + F5.
  2. On m'a alors présenté une option pour accepter un certificat auto-signé pour localhost.
  3. J'ai suivi les invites, puis j'ai pu visiter mon application en utilisant AppUrl que j'ai copié après avoir activé SSL dans les paramètres de débogage du projet.

En essayant quelques choses pour résoudre cette erreur, je suis également tombé sur cette erreur. "Une erreur s'est produite lors de la détermination de l'ID de processus du processus DNX hébergeant votre application"

Ce qui a été causé par l'exécution d'une autre instance de l'application.

J'espère que cette réponse aide quelqu'un.

Eric
la source
Attendez, donc la réponse est "causée par l'exécution d'une autre instance de l'application"? Devrait rendre cela plus évident tout de suite.
Bloodied
2

Dans mon cas, dans un projet asp net core 1.1, .net framework 4.5.2, l'erreur ne faisait pas référence à dnx car ce n'est plus. Au lieu de cela, il faisait référence au nom du projet exe. Une autre version de l'erreur mentionnait simplement l'impossibilité de se connecter à iis express.

Le problème était l'introduction d'une règle de réécriture de nom d'hôte canonique qui essaie de forcer toutes les connexions à avoir un nom d'hôte commençant par www. par exemple en redirigeant gty.org vers www.gty.org pour se conformer à notre cert ssl. C'est bien en production mais vous ne pouvez pas forcer https: // localhost: 44347 / à commencer par www et vous attendre à ce que iis express soit capable de le gérer.

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

La solution était de commenter la règle lors de l'exécution dans Visual Studio ou d'ajouter une condition:

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

En supposant que vous exécutez IIS Express avec SSL activé en fonction de votre installation, vous devrez mettre votre certificat de développement IIS Express (émis à «localhost» / émis par «localhost») dans [Ordinateur local \ Personnel \ Certificats] ou [Ordinateur local \ Certification racine de confiance \ Certificats]. L'un de ceux-ci devrait fonctionner. (Avec Windows 10 + VS2015). HTH

Nathan Noble
la source
L'ajout du certificat de développement IIS Express dans l'ordinateur local \ Trusted Root Certification \ Certificates a fait le travail pour moi. Merci! (Pour n'importe qui d'autre, dans mon cas, j'avais déjà le certificat dans Local Computer \ Personal \ Certificates)
David Aleu
1

Recherchez dans le fichier web.config les entrées non valides. Par exemple, avoir la balise "entityFramework" là-bas me cause ce problème.

Victor Stagurov
la source
1

J'ai eu ce problème lorsque je bascule les paramètres et que j'ai désactivé " Activer l'authentification anonyme " dans le projet> Propriétés> Déboguer. Assurez-vous qu'il est activé. Fermez et relancez le projet, puis réessayez. J'espère que cela t'aides.

loupQueen
la source
J'ai eu le même problème, mais plutôt que d'avoir à activer uniquement anonyme, j'ai dû activer l'authentification anonyme ou Windows. Si les deux étaient faux, j'ai eu l'erreur.
birken25
1

J'ai utilisé RC1 et EF First Code Approach. Une bonne idée pour démarrer l'enquête est d'exécuter le projet avec l'option: "Démarrer le projet sans débogage" (Ctrl + F5). Ensuite, j'obtiens une erreur plus significative pour moi: "La section de configuration 'entityFramework' ne peut pas être lue car il manque une déclaration de section." Cela n'a pas fonctionné pour moi à cause du fichier web.config.

Jaryn
la source
1
  1. Mettre à jour dnvm
  2. Changer la version sdk global.json par défaut de dnvm
  3. Pas besoin de toucher project.json ou project.lock.json
Shuang Gao
la source
0

Lors de la mise à niveau de beta7 -> beta8, j'ai eu ce problème et les suggestions fournies par Ben M et Domysee ont fonctionné pour moi. Cependant, un de mes collègues avait encore des problèmes pour exécuter notre projet qui dnxcore50ne cible que. Si vous vous assurez d'avoir exécuté les commandes suivantes:

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

C'était la deuxième commande en particulier qui le fixait sur sa machine. Vous pouvez également vérifier que ce dossier contient un dnx.exe:

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

Je viens de découvrir un autre problème qui causait cela!

web.configdans la racine du projet avait des règles de réécriture d'URL IIS douteuses pour appliquer HTTPS. La suppression de ces règles a résolu le problème.

Ignas
la source
0

Il y a tellement de choses qui pourraient causer cette erreur. En voici quelques-uns qui ont fonctionné pour moi:

  1. Supprimez simplement le web.configdans votre wwwrootdossier. Il sera recréé correctement lors de la compilation.
  2. Si vous essayez d'utiliser SSLet dans votre IIS Expresset déplacer votre SSL Certvers le Trusted Root Certification Authoritiesdossier n'a pas fonctionné. Dans l' Debugonglet du Propertiesprojet que vous essayez d'exécuter. Essayez de décocher la Enable SSLcase, puis de cliquer à nouveau dessus pour l'activer et obtenir un port différent. Vous devrez peut-être le faire plusieurs fois.
Serj Sagan
la source
0

Une autre solution potentielle
Pour tous ceux qui jouent avec les paramètres SSL, j'ai trouvé que le simple changement du port SSL du launchSettings.jsonfichier vers un autre port à proximité a résolu le problème.

Pour info, je n'ai rien trouvé sur la machine utilisant le port d'origine, et je n'ai pas non plus eu d'erreur de port en cours d'utilisation.

Ben Cull
la source