Compartir a través de


Hospedaje e implementación de ASP.NET Core Blazor

Nota

Esta no es la versión más reciente de este artículo. Para la versión actual, consulte la versión de .NET 9 de este artículo.

Advertencia

Esta versión de ASP.NET Core ya no se admite. Para obtener más información, consulte la directiva de compatibilidad de .NET y .NET Core. Para la versión actual, consulte la versión de .NET 9 de este artículo.

Importante

Esta información hace referencia a un producto en versión preliminar, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no proporciona ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.

Para la versión actual, consulte la versión de .NET 9 de este artículo.

En este artículo se explica cómo hospedar e implementar aplicaciones de Blazor.

Publicar la aplicación

Las aplicaciones se publican para implementación en la configuración de versión.

Nota

Publique una Blazor WebAssembly hospedada del proyecto Server.

  1. Seleccione el comando Publicar {APPLICATION} en el menú Compilar, donde el marcador {APPLICATION} de posición nombre de la aplicación.
  2. Seleccione el destino de publicación. Para publicar localmente, seleccione Carpeta.
  3. Acepte la ubicación predeterminada del campo Elegir una carpeta o especifique una ubicación diferente. Haga clic en el botón Publish.

Al publicar la aplicación se desencadena una restauración de las dependencias del proyecto y se compila el proyecto antes de crear los recursos para la implementación. Como parte del proceso de compilación, se quitan los ensamblados y métodos que no se usan para reducir los tiempos de carga y el tamaño de descarga de la aplicación.

Ubicaciones de publicación predeterminadas

  • Blazor Web App: la aplicación se publica en la carpeta /bin/Release/{TARGET FRAMEWORK}/publish, donde el marcador de posición {TARGET FRAMEWORK} corresponde al marco de destino. Implemente el contenido de la carpeta publish en el host.
  • Independiente Blazor WebAssembly: La aplicación se publica en la carpeta bin/Release/{TARGET FRAMEWORK}/publish o bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish. Para implementar la aplicación como un sitio estático, copie el contenido de la carpeta wwwroot en el host del sitio estático.
  • Blazor Server: la aplicación se publica en la carpeta /bin/Release/{TARGET FRAMEWORK}/publish, donde el marcador de posición {TARGET FRAMEWORK} corresponde al marco de destino. Implemente el contenido de la carpeta publish en el host.
  • Blazor WebAssembly
    • Independiente: la aplicación se publica en la /bin/Release/{TARGET FRAMEWORK}/publish carpeta o bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish . Para implementar la aplicación como un sitio estático, copie el contenido de la carpeta wwwroot en el host del sitio estático.
    • Hospedado: La aplicación ASP.NET Core del servidor y la aplicación cliente Blazor WebAssembly se publican en la carpeta /bin/Release/{TARGET FRAMEWORK}/publish de la aplicación del servidor, junto con los recursos web estáticos de la aplicación cliente. Implemente el contenido de la carpeta publish en el host.

IIS

Para hospedar una aplicación Blazor en IIS, consulte los siguientes recursos:

No se admite el uso compartido de grupos de aplicaciones entre aplicaciones de ASP.NET Core, incluidas las aplicaciones Blazor. Use un grupo de aplicaciones por aplicación al hospedar con IIS y evite el uso de directorios virtuales de IIS para hospedar varias aplicaciones.

Se admiten una o varias aplicaciones Blazor WebAssembly hospedadas por una aplicación de ASP.NET Core conocida como una solución Blazor WebAssembly hospedada, para un grupo de aplicaciones. Pero no se recomienda ni se admite la asignación de un único grupo de aplicaciones a varias soluciones Blazor WebAssembly hospedadas o en escenarios de hospedaje de subaplicaciones.

Para más información sobre las soluciones, consulte Herramientas para ASP.NET Core Blazor.

Configuración de Blazor ServerMapFallbackToPage

Esta sección solo se aplica a las aplicaciones Blazor Server. MapFallbackToPage no se es compatible con Blazor Web App ni en aplicaciones de Blazor WebAssembly.

En escenarios en los que una aplicación requiere un área independiente con componentes y recursos de Razor personalizados:

  • Cree una carpeta dentro de la carpeta Pages de la aplicación para contener los recursos. Por ejemplo, se crea una sección de administrador de una aplicación en una nueva carpeta denominada Admin (Pages/Admin).

  • Cree una página raíz (_Host.cshtml) para el área. Por ejemplo, cree un archivo Pages/Admin/_Host.cshtml desde la página raíz principal de la aplicación (Pages/_Host.cshtml). No proporcione una directiva @page en la página _Host de administración.

  • Agregue un diseño a la carpeta del área (por ejemplo, Pages/Admin/_Layout.razor). En el diseño del área independiente, establezca el <base> de la etiqueta href para que coincida con la carpeta del área (por ejemplo, <base href="/Admin/" />). Para fines de demostración, agregue ~/ a los recursos estáticos de la página. Por ejemplo:

    • ~/css/bootstrap/bootstrap.min.css
    • ~/css/site.css
    • ~/BlazorSample.styles.css (el espacio de nombres de la aplicación de ejemplo es BlazorSample)
    • ~/_framework/blazor.server.js (script Blazor)
  • Si el área debe tener su propia carpeta de recursos estáticos, agregue la carpeta y especifique su ubicación en Middleware de archivos estáticos en Program.cs (por ejemplo, app.UseStaticFiles("/Admin/wwwroot")).

  • Se agregan componentes Razor a la carpeta del área. Como mínimo, agregue un componente Index a la carpeta de área con la directiva @page correcta para el área. Por ejemplo, agregue un archivo Pages/Admin/Index.razor basado en el archivo Pages/Index.razor predeterminado de la aplicación. Indique el área de administración como plantilla de ruta en la parte superior del archivo (@page "/admin"). Agregue componentes adicionales según sea necesario. Por ejemplo, Pages/Admin/Component1.razor con una directiva @page y una plantilla de ruta de @page "/admin/component1.

  • En Program.cs, llame a MapFallbackToPage para la ruta de acceso de solicitud del área inmediatamente antes de la ruta de acceso de la página raíz de reserva a la página _Host:

    ...
    app.UseRouting();
    
    app.MapBlazorHub();
    app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host");
    app.MapFallbackToPage("/_Host");
    
    app.Run();