Saltar al contenido

Cómo cambiar Azure App Service a 64 bits

Solución:

TLDR; Los procesos centrales de .NET de 64 bits que utilizan el tiempo de ejecución de .NET core (a diferencia del tiempo de ejecución de .NET Framework) aún no son compatibles con Azure, pero se prevé que estén disponibles en el futuro.


Lo siguiente es de las conversaciones que tuve con el soporte de Microsoft Azure.

La configuración de 64 bits / 32 bits en Azure Portal (que se muestra arriba en mi captura de pantalla), controla el proceso de IIS w3wp.exe. El proceso w3wp.exe reenvía las solicitudes a su proceso principal de NET. La configuración no controla el bitness del proceso central de .NET. Es un poco confuso, pero explica por qué cambiar la opción Plataforma en la foto de arriba no tuvo ningún efecto.

Según la configuración de la variable de entorno PATH del servicio de aplicaciones, dotnet.exe se asigna al de 32 bits, que es “D: Archivos de programa (x86) dotnet dotnet.exe”. El tiempo de ejecución de 64 bits de .NET core no está preinstalado en los servicios de aplicaciones, por lo que actualmente no está disponible.

Microsoft planea agregar soporte de 64 bits a las aplicaciones principales de .NET que se ejecutan en el tiempo de ejecución de .NET core en Azure, pero depende de una actualización futura de la cadena de herramientas principales de .NET. Me dieron una fecha interna estimada, pero prometí que no la compartiría públicamente.

Una solución alternativa que me dieron fue usar la plantilla de Visual Studio del núcleo de ASP.NET (usando .net framework), no la del núcleo de ASP.NET (usando el núcleo de .net). Ese carga el tiempo de ejecución del marco .Net de 64 bits para su aplicación web principal ASP.Net. Esto requerirá un poco de trabajo de migración y supongo que puede que no sea posible para algunos proyectos.

Afortunadamente, pude cambiar a versiones de 32 bits de algunas de mis dependencias, lo que significaba que la aplicación funcionaba en el entorno de Azure. Lamentablemente, esto no significará mucho para aquellos que no tienen esta opción, y estoy seguro de que hay muchas.

Si necesita un tiempo de ejecución de 64 bits, hay 4 formas de hacerlo:

  1. Implementar una aplicación autónoma
  2. Implemente su propio tiempo de ejecución
  3. Usar el servicio de aplicaciones de Linux Azure
  4. Utilice aplicaciones web para contenedores

Vea más detalles sobre cómo hacerlo en el siguiente enlace: https://blogs.msdn.microsoft.com/webdev/2018/01/09/64-bit-asp-net-core-on-azure-app-service /

Créditos a: Glenn Condron

Esto ahora está disponible en Azure App Service.

Pasos para implementar:

  1. Establecer la plataforma en 64 bits en el portal
  2. Asegúrese de que el proyecto tenga como destino 64 bits al incluir lo siguiente en el csproj:
<PropertyGroup>
  <PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
  1. Al publicar la aplicación, asegúrese de que el marco de trabajo de destino esté configurado en win-x64. (Si está corriendo dotnet publish solo agrega -r win-x64)

La documentación está aquí, pero (en la actualidad) se reconoce que es un poco escasa.

Esta respuesta al problema de github sugiere que deberíamos poder hacer una implementación dependiente del marco y hacer que “simplemente funcione”. YMMV, pero esa no fue mi propia experiencia, de ahí la sugerencia de la bandera de tiempo de ejecución anterior

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