none
Publicar Web Api Net Core RRS feed

  • Pregunta

  • Hola a todos

    Tengo creado una Web api en Net Core 2.2 en una maquina con Windows 10 y Visua Studio 2019, necesito publicarlo en un servidor de pruebas que es un Linux Server Ubuntu 16.04, en el servidor esta instalado Net Core 2.2 runtime y NGIXN, el servidor se encuentra en una maquina virtual, en otro servidor Linux server Ubuntu 16.04 esta en Docker el SQL Server funcionando correctamente.

    Mis dudas son, la aplicacion creada en windows funcionara en linux?, como deploy mi web api al server linux. Los ejemplos que he encontrado en la web son aplicaciones hechas en windows y publicadas en IIS, y las que estan publicadas en Linux las aplicaciones estan hechas en la misma maquina linux, pero ningun ejemplo de la que pido ayuda.

    gracias


    Luis Ormeño

    domingo, 7 de julio de 2019 12:40

Respuestas

  • Hola Luis Ormeño A,

    El concepto es en teoría mas sencillo de lo que parece; la aplicación creada en Windows y que se ejecuta en el Shell de Windows lo hace a través del .NET core que enlace lo necesario para llamar a las instrucciones del sistema. Y si tu aplicación está publicada en IIS, es el mismo que enlazara lo necesario.

    Es entonces que debido a que tu aplicación en Linux necesita ejecutarse en el shell o en el bash o algún otro de los modulos que Linux cuenta ya dependería del tipo de instalación que realizaste y muy especifico de la distro, pero en general como describes tu aplicación me gustaría que revisaras el siguiente articulo que puede ser justo lo que buscas.

    https://docs.microsoft.com/es-es/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2

    Ahora como te mencione, depende realmente de tu distro ya que algunas tienen otros bash otras tienen otros "modulos" de ejecución además del kernel, etc.

    El articulo menciona como se haría en Ubuntu y para ello necesitarías previamente habilitar sudo, si es que tu distro no lo tiene por default.

    De hecho tu diseño actual asimila mucho a lo que el IIS hace en Windows.

    https://docs.microsoft.com/en-us/dotnet/core/

    https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites

    Gracias por usar los foros de MSDN.
    Erick Rivera
     ____
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Editado eRiver1 lunes, 8 de julio de 2019 5:06 Grámatica
    • Marcado como respuesta Luis Ormeño A lunes, 8 de julio de 2019 20:52
    lunes, 8 de julio de 2019 5:05

Todas las respuestas

  • hola

    >>la aplicacion creada en windows funcionara en linux?

    si las creaste en asp.net core, si

    >>como deploy mi web api al server linux

    depende

    si tienes Ngixn en el servidor  lo publicas directo en ese web server, ahora si usas docker es diferente porque tienes que armar la imagen

    >>Los ejemplos que he encontrado en la web son aplicaciones hechas en windows y publicadas en IIS,

    no se donde has buscado pero hay explicaciones

    Host ASP.NET Core on Linux with Nginx

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 7 de julio de 2019 13:19
  • Hola Luis Ormeño A,

    El concepto es en teoría mas sencillo de lo que parece; la aplicación creada en Windows y que se ejecuta en el Shell de Windows lo hace a través del .NET core que enlace lo necesario para llamar a las instrucciones del sistema. Y si tu aplicación está publicada en IIS, es el mismo que enlazara lo necesario.

    Es entonces que debido a que tu aplicación en Linux necesita ejecutarse en el shell o en el bash o algún otro de los modulos que Linux cuenta ya dependería del tipo de instalación que realizaste y muy especifico de la distro, pero en general como describes tu aplicación me gustaría que revisaras el siguiente articulo que puede ser justo lo que buscas.

    https://docs.microsoft.com/es-es/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2

    Ahora como te mencione, depende realmente de tu distro ya que algunas tienen otros bash otras tienen otros "modulos" de ejecución además del kernel, etc.

    El articulo menciona como se haría en Ubuntu y para ello necesitarías previamente habilitar sudo, si es que tu distro no lo tiene por default.

    De hecho tu diseño actual asimila mucho a lo que el IIS hace en Windows.

    https://docs.microsoft.com/en-us/dotnet/core/

    https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites

    Gracias por usar los foros de MSDN.
    Erick Rivera
     ____
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. 
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Editado eRiver1 lunes, 8 de julio de 2019 5:06 Grámatica
    • Marcado como respuesta Luis Ormeño A lunes, 8 de julio de 2019 20:52
    lunes, 8 de julio de 2019 5:05