Git deployment fallá al hacer publicación de una aplicación NodeJS en Azure desde Visual Studio 2015 – git visual-studio nodejs

Pregunta:


Me encuentro publicando desde Visual Studio 2015 una aplicación

  • NodeJS
  • Express

La quiero publicar en Azure y desde luego utilizando Git Deployment. Todo parece normal, pero al momento de ejecutar el website desde el browser siempre obtengo error 403.

Esto no sucede cuando hago publicación directa por medio de Web Deployment, pero así no me sirve porque deseo dejar todo funcionando con integración continua por medio de Git.

Para descartar problemas en mi aplicación he creado una aplicación desde el template y tal como está de por sí ya falla de la misma manera.

No logro dar con el error, ¿Alguna idea al respecto?

Sospecho que me debe estar haciendo falta algo en el web.config pero no logro dar con el tema.

Preguntado por: JuanK

JuanK

después de muchos ires y venires y de reportar un bug en el repositorio de Microsoft/NodeJSTools (sin respuesta definitiva aún) logré entender el porqué falla y desde luego encontrar una solución óptima entre varias posibles.

Diagnóstico

Tras analizar el despliegue me di cuenta que el sitio en azure arroja error de forbidden porque básicamente el web.config no está cargado en el root y por ende IIS no lo puede procesar, al no haber settings IIS queda denegando el acceso a cualquier recurso.

Aún poniendo luego el web.config en el root haria falta hacer varias modificaciones en el handler de iisnode y en la configuración de url rewrites

Solución

Al crear la solución/proyecto – o incluso después – hay que asegurarse que los contenidos del website queden publicados como roots, es decir no crear carpetas adicionales para el proyecto dentro de la solución ya que el deployment se va con la estructura completa de folder.

Deshabilitar carpeta para la solución

Tuve una situación similar a decir verdad esta no es la solución pero podrías acercarte a ella. Si aún no has activado el debugging en tu site.

Crea un archivo en la raíz de tu aplicación que se llame IISNode.yml con el siguiente contenido.

loggingEnabled: true

Reinicia el site y ejecuta esta línea en tu Azure Command Line Tools

azure site log tail [sitename]

Para más información puedes entrar aquí

How to debug a Node.js web app in Azure App Service

El error 403 significa prohibido, usualmente por falta de privilegios.

A mi me pasaba lo mismo cuando cargaba mi app de node.js a azure desde un repositorio gitlab que tenia en una maquina tambien en azure, y resulto ser que el repositorio git no tenia los permisos para ser accedido publicamente. Te sugiero revises los permisos de acceso al repositorio y solo para hacer tus pruebas lo dejes en publico, de esa manera puedes descartar que ese sea el error.

Fuente

Related Posts:

convertir array a Map en javascript – javascript map nodejs
Pregunta: quiero convertir un arreglo a Map(), en este console "console.log(arrayParaMap);" sale undefined el ejemplo que uso es este //example {a:1,a:2,a:1,b:1,b:5,b:6} el map que prentendo obtener es ...
como iterar un objeto en nodejs – javascript nodejs
Pregunta: Hice esta función: const obj = ; const objMapped = obj.reduce((acc, item) => { ...
Consulta sobre git – git github
Pregunta: Tengo un repositorio remoto https://github.com/xxxx/yyy.git En el mismo host donde estoy ubicado habia creado la repo y pusheado , me pidio el nick y password ...
Error al instalar swagger en Visual Studio – visual-studio swagger
Pregunta: He creado una Web Api e instalado Swagger en mi Proyecto hecho en Visual Studio con C#. Al momento de correr mi proyecto me ...
Cargar fuente en un archivo .ttf desde JavaScript – javascript nodejs
Pregunta: estoy tratando de agregar una fuente a mi proyecto, el tema es que necesito hacerlo todo desde JS, ¿Como cargo una fuente desde un ...
Los repositorios de GIT muestran una modificación en una rama en la rama padre – git
Pregunta: Usando GIT para manejar mis proyectos, noté una serie de errores. Por ejemplo, al crear una rama (git checkout -b nueva_rama), ésta se crea normalmente, ...
alguien sabe como realizar excel con asp c# con store procedure con parametros – c# asp.net asp.net-mvc
Pregunta: Esta pregunta es un duplicado exacto de: ...
Comparación de objetos en NodeJs – javascript nodejs array
Pregunta: Trabajo con NodeJs, específicamente estoy haciendo un robot que usa la Discord API. Uno de sus eventos, llamado guildMemberUpdate usa dos variables, oldMember y ...
como puedo detectar la tecla delete en un datagrid c# – c# visual-studio
Pregunta: Hola buenas como puedo detectar la tecla delete (supr) en un datagrid en c# Preguntado por: Mati Añade un evento ...
Django urls.py error – python nodejs django
Pregunta: Buenos días, Estoy intentando meter el 'MEDIA_ROOT' en 'urls.py' pero cuando ejecuto el 'runserver' me aparece el siguiente error: File "C:UsersManuxDesktoppd110libsite-packagesdjangoconfurlsstatic.py", line ...
Angular-Cli limpiar cache – nodejs angularjs-2.0 angular-cli
Pregunta: Estoy haciendo cambios en un proyecto generado con angular-cli pero al parecer quedo colgado algun archivo en cache y node no se da cuenta ...
Error de directivas al tratar de reproducir archivos .mp3 en c# – c# visual-studio
Pregunta: Actualmente quiero reproducir archivos de audio en mp3 y ya tengo fragmentos del código que en teoría deberían de funcionar. Codigo Actual: using WMPLib; ------ Error ...
¿Cómo eliminar un tag en Git? – git
Pregunta: Trabajando en una rama, accidentalmente se creo y subió al servidor un 'tag' con un nombre erróneo para la línea de versionado de las ...
Al detener la depuración de la página web en Visual Studio 2017 se cierra el navegador – visual-studio web
Pregunta: Al detener la depuración de la página web en Visual Studio 2017 se cierra el navegador. Por ejemplo, en VS 2015 tú depuras y ...
Object sender y tomar texto – c# asp.net visual-studio
Pregunta: Tengo 3 botone diferentes pero quiero que al darle clic a alguno de ellos, el texto que este trae se guarde en una variable ...

One Comment

Add a Comment

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