Saltar al contenido

Error de ASP.NET Core 404 en IIS 10

Solución:

En mi caso, el problema fue que mi controlador arrojó una excepción, por lo que el marco intentó usar la página del controlador de excepciones que no estaba disponible, por lo tanto, el error 404, el controlador en sí arrojaba un error 500

Para beneficio de los buscadores.

Obtuve un 404 al usar IIS. Había seguido el procedimiento correcto para la publicación (aquí) y la implementación como se detalla aquí.

Me tomó un tiempo averiguarlo, pero finalmente encontré la respuesta oculta en una publicación del blog de Rick Strahl.

Básicamente, al crear el grupo de aplicaciones, además de configurarlo en ‘Sin código administrado’, también necesitaba ir a la configuración avanzada y configurar la Identidad del grupo de aplicaciones en ‘Servicio de red’. Estaba bien en ApplicationPoolIdentity en mi máquina, pero no en una máquina en la que implementé.

ingrese la descripción de la imagen aquí

Entonces, para mayor claridad, mi procedimiento completo fue:

Para crear paquete:

  1. Crear el sitio web principal de dotnet (usé Visual Studio 2017)
  2. Publicar. Podría haber usado la función de publicación de VS, pero usé CLR a través del administrador de paquetes. El comando fue:

    dotnet publish -c Release -r win-x64: autocontenido

Tuve que usar el identificador win-x64 ya que tenemos que ser compatibles con Windows Server 2008 de 64 bits.

Desplegar:

  1. Cree una carpeta en C: inetpub wwwroot (por ejemplo, ‘testsite’)
  2. Tome el contenido de la carpeta de publicación ({root} bin Release netcoreapp2.1 win-x64 publish) y cópielo en la nueva carpeta ‘testsite’ (o su equivalente).
  3. Instale el tiempo de ejecución de dotnet core (¡no el SDK!) En la máquina host.
  4. Abra IIS. Haga clic con el botón derecho en ‘Grupos de aplicaciones’ y luego en ‘Agregar grupo de aplicaciones’. Cree uno con la versión .NET CLR configurada como ‘Sin código administrado’.
  5. (mi máquina no necesitaba este paso, pero el servidor sí). Vuelva a hacer clic en Grupos de aplicaciones. Haga clic derecho en su nuevo grupo de aplicaciones y elija ‘Configuración avanzada’. Cambie la identidad a ‘Servicio de red’ (como se muestra en la imagen de arriba).
  6. De vuelta al nivel superior de IIS, expanda ‘Sitio web predeterminado’, haga clic con el botón derecho en la carpeta de su sitio web y seleccione ‘Convertir en aplicación’. Elija su nuevo grupo de aplicaciones sin código administrado.
  7. Abra el símbolo del sistema como administrador y iisreset . Solo debería necesitar esto la primera vez después de haber instalado el tiempo de ejecución de dotnet core.
  8. Visite el sitio (por ejemplo, http: // localhost / testsite)

Tu código está funcionando en mi máquina con Kestrel. Un buen paso de solución de problemas es averiguar si el problema está en su aplicación ASP.NET Core o en su configuración de alojamiento IIS.

Pruebe esto desde la raíz de su proyecto.

dotnet restore
dotnet run

Verá algo como esto:

Hosting environment: Production
Content root path: C:MyApplicationPath
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

En su navegador, vaya a las siguientes dos URL. Si no funcionan, entonces algo anda mal con su aplicación. Si funcionan, algo anda mal con su alojamiento IIS.

localhost:5000        // you will see your index.html page
localhost:5000/api    // you will see your default routes output
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *