c# - tutorial - Se produjo un error al intentar determinar la identificación del proceso del proceso DNX que aloja su aplicación
asp.net core web api (18)
Recibo este mensaje de error cuando intento iniciar la aplicación.
Se produjo un error al intentar determinar la identificación del proceso del proceso DNX que aloja su aplicación
¿Hay alguna forma de solucionar el problema?
En Visual Studio:
Mientras seguía este tutorial recibí un error similar.
Primero, recibí el error: "Se produjo un error al intentar determinar la identificación del proceso de dotnet.exe ..." Seguí los siguientes pasos.
- Inicié mi aplicación sin depurar CTRL + F5.
- Luego se me presentó la opción de aceptar un certificado autofirmado para localhost.
- Seguí las indicaciones y luego pude visitar mi aplicación usando AppUrl que copié después de habilitar SSL en la configuración de depuración del proyecto.
Mientras intentaba algunas cosas para resolver ese error, también me encontré con este error. "Se produjo un error al intentar determinar la identificación del proceso del proceso DNX que aloja su aplicación"
Lo cual fue causado por tener otra instancia de la aplicación ejecutándose.
Espero que esta respuesta ayude a alguien.
- Actualizar dnvm
- Cambie la versión global.json sdk como la predeterminada del dnvm
- No es necesario tocar project.json o project.lock.json
¡Acabo de descubrir un problema más que estaba causando esto!
web.config
en la raíz del proyecto tenía algunas reglas de reescritura de URL de IIS dudosas para aplicar HTTPS.
Eliminar esas reglas resolvió el problema.
Al actualizar de beta7 -> beta8 tuve este problema y las sugerencias proporcionadas por Ben M y Domysee funcionaron para mí.
Sin embargo, uno de mis colegas todavía tenía problemas para ejecutar nuestro proyecto, que se dirige solo a
dnxcore50
.
Si se asegura de haber ejecutado los siguientes comandos:
dnvm install 1.0.0-beta8 -r coreclr
dnvm install 1.0.0-beta8 -r coreclr -arch x86
Fue el segundo comando en particular el que lo arregló en su máquina.
También puede verificar que esta carpeta
dnx.exe
un
dnx.exe
:
%userprofile%/.dnx/runtimes/dnx-coreclr-win-x86.1.0.0-beta8/bin
Compruebe el archivo web.config para ver si hay entradas no válidas Por ejemplo, tener la etiqueta "entityFramework" allí me causa este problema.
En mi caso en un proyecto asp net core 1.1, .net framework 4.5.2, el error no se refería a dnx ya que eso ya no existe. En cambio, se refería al nombre del proyecto exe. Otra versión del error se refería a simplemente no poder conectarse a iis express.
El problema fue la introducción de una regla canónica de reescritura de nombres de host que intenta forzar a todas las conexiones a tener un nombre de host que comience por www. por ejemplo, redirigiendo gty.org a www.gty.org para cumplir con nuestro certificado SSL. Esto está bien en producción, pero no puede forzar https://localhost:44347/ para comenzar con www y esperar que iis express pueda manejarlo.
<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 solución fue comentar la regla cuando se ejecuta en Visual Studio o agregar una condición:
<add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
Es posible actualizar, descubrí que tenía que mirar las nuevas plantillas actualizadas here .
Actualice su web.config en wwwroot para incluir:
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
También deberá cambiar la forma en que el proyecto se depura con Kestrel modificando su project.json:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
}
y modificando tu hosting.ini
server=Microsoft.AspNet.Server.Kestrel
y agregando esto al método Configure en startup.cs
// Add the platform handler to the request pipeline.
app.UseIISPlatformHandler();
agregar estas referencias debería permitirle ejecutar el proyecto.
Hay tantas cosas que podrían causar este error. Aquí hay algunos que me funcionaron:
-
Simplemente elimine
web.config
en su carpetawwwroot
. Se recreará correctamente en la compilación. -
Si está tratando de usar
SSL
y en suIIS Express
y mover suSSL Cert
a la carpetaTrusted Root Certification Authorities
no funcionó. En la pestañaDebug
de lasProperties
del proyecto que está intentando ejecutar. Intente desmarcar la casilla de verificaciónEnable SSL
y luego haga clic nuevamente para habilitarla y obtener un puerto diferente. Puede que tenga que hacer esto varias veces.
Llegué a este problema debido a que la configuración del proyecto intentaba lanzar https: // localhost en lugar de http. Haga clic derecho en el proyecto web, en "Depurar" y ajuste "URL de la aplicación" para que sea http en lugar de https.
Otra forma de evitar esto fue cambiar el iniciador de "IIS Express" a "Web"
Microsoft cambió el modelo de alojamiento como se describe en las notas de la versión .
En
project.json
reemplaza la dependencia
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7"
con
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8"
En
web.config
en la sección de
handlers
, elimine todas las entradas excepto
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
El
web.config
completo se verá así:
<?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:
Al usar RC1 tuve el error después de mover la carpeta de la solución.
Después de eliminar las carpetas
bin
y
obj
todo volvió a funcionar.
Como señaló user764754, simplemente reiniciar Visual Studio también puede ayudar.
Para mí, el problema se resolvió cerrando Visual Studio, eliminando
project.lock.json
e iniciar Visual Studio nuevamente.
Editar : Estaba usando RC1.
Para mí, el problema se resolvió cerrando Visual Studio, eliminando
WebApplication.csproj.user
e iniciar Visual Studio nuevamente.
Para otras personas que tienen este problema, en los casos en que las otras soluciones no funcionan, encontré la respuesta en este hilo: Obligar a usar SSL: se produjo un error al intentar determinar la identificación del proceso del proceso DNX que aloja su aplicación
Si su proyecto usa o impone SSL, ejecútelo sin depurar (CTRL + F5) primero, le pedirá que genere un certificado SSL local, y después de eso la depuración funcionará y el error desaparecerá.
Por lo que vale, este es un mensaje de error genérico que podría servir como una pista falsa para cualquier número de problemas donde httpPlatformHandler no puede iniciar el ejecutable dado (dnx en este caso).
En mi caso, recibí este error como resultado directo de una mala interpretación del archivo launchSettings.json. Intenté habilitar el punto final https para mi aplicación y dupliqué por error el sslport en mi applicationUrl. Según tengo entendido, applicationUrl debe ser el nombre de host / puerto http de la aplicación y al completar el sslPort simplemente configura el entorno IIS Express para escuchar https en el nombre de host proporcionado en applicationUrl en el puerto proporcionado en sslPort.
Por ejemplo:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:44000",
"sslPort": 44300
}
}
Proporciona los siguientes dos puntos finales en localhost.
- Http sobre el puerto 44400
- Https sobre el puerto 44300
Si tuviera el mismo puerto en la configuración applicationUrl y sslPort, recibiría el error asociado con este hilo.
Esto es cierto para mí en RC1
Suponiendo que está ejecutando IIS Express con SSL habilitado dependiendo de su instalación, deberá colocar su Certificado de desarrollo de IIS Express (Emitido para "localhost" / Emitido por "localhost") en [Computadora local / Personal / Certificados] o [Computadora local / Certificación raíz de confianza / Certificados]. Uno de esos debería funcionar. (Usando Windows 10 + VS2015). HTH
Tuve este problema cuando estoy alternando la configuración y he deshabilitado la opción " Habilitar autenticación anónima " en el Proyecto> Propiedades> Depuración. Asegúrese de que esté habilitado. Cierre y reinicie el proyecto e intente nuevamente. Espero que esto ayude.
Utilicé RC1 y EF First Code Approach. Una buena idea para comenzar la investigación es ejecutar el proyecto con la opción: "Iniciar proyecto sin depurar" (Ctrl + F5). Luego obtengo un error más significativo para mí: "La sección de configuración ''entityFramework'' no se puede leer porque falta una declaración de sección". No funcionó para mí debido al archivo web.config.
Otra posible solución
Para cualquiera que juegue con la configuración SSL, descubrí que solo cambiar el puerto SSL en el archivo
launchSettings.json
a otro puerto cercano resolvió el problema.
FYI, no pude encontrar nada en la máquina usando el puerto original, ni recibí un error de puerto en uso.