Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis informaciónEste explorador xa non é compatible.
Actualice a Microsoft Edge para dispoñer das funcionalidades máis recentes, as actualizacións de seguranza e a asistencia técnica.
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.
Aviso
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.
Por Tom Dykstra, Steve Smith, Stephen Halter y Chris Ross
Una aplicación ASP.NET Core se ejecuta con una implementación de servidor HTTP en proceso. La implementación del servidor realiza escuchas de solicitudes HTTP y las muestra en la aplicación como un conjunto de características de solicitud compuestos en un HttpContext.
ASP.NET Core se distribuye con el servidor Kestrel, que es el servidor HTTP multiplataforma predeterminado.
El servidor Kestrel es la implementación de servidor HTTP multiplataforma predeterminada. Kestrel proporciona el mejor rendimiento y uso de memoria, pero carece de algunas de las características avanzadas de HTTP.sys. Para más información, consulte Diferencias entre Kestrel y HTTP.sys en este documento.
Use Kestrel:
Por sí solo como un servidor perimetral que procesa solicitudes directamente desde una red, incluida Internet.
Con un servidor proxy inverso, tal como Internet Information Services (IIS), Nginx o Apache. Un servidor proxy inverso recibe las solicitudes HTTP de Internet y las reenvía a Kestrel.
Se admite cualquiera de las configuraciones de hospedaje, con o sin un servidor proxy inverso.
Si quiere obtener instrucciones e información sobre la configuración de Kestrel y cuándo usar Kestrel en una configuración de proxy inverso, consulte Servidor web Kestrel en ASP.NET Core.
ASP.NET Core se distribuye con el servidor Kestrel, que es el servidor HTTP multiplataforma predeterminado.
Para información sobre cómo usar Nginx en Linux como servidor proxy inverso para Kestrel, consulte Hospedaje de ASP.NET Core en Linux con Nginx.
Si las aplicaciones ASP.NET Core se ejecutan en Windows, HTTP.sys es una alternativa a Kestrel. Se recomienda Kestrel antes que HTTP.sys, salvo si la aplicación necesita características que no están disponibles en Kestrel. Para más información, vea HTTP.sys web server implementation in ASP.NET Core (Implementaciones del servidor web de HTTP.sys en ASP.NET Core).
HTTP.sys también se puede usar para las aplicaciones que solo se exponen a una red interna.
Si necesita una guía de configuración de HTTP.sys, consulte Implementación del servidor web HTTP.sys en ASP.NET Core.
El elemento IApplicationBuilder disponible en el método Startup.Configure
expone la propiedad ServerFeatures del tipo IFeatureCollection. Kestrel y HTTP.sys solo exponen una característica cada uno, IServerAddressesFeature, pero otras implementaciones de servidor pueden exponer funcionalidades adicionales.
Se puede usar IServerAddressesFeature
para averiguar a qué puerto se ha enlazado la implementación del servidor en tiempo de ejecución.
Si los servidores integrados no cumplen los requisitos de la aplicación, se puede crear una implementación de servidor personalizado. En la guía de Open Web Interface for .NET (OWIN) se muestra cómo escribir una implementación de basada en IServer. Solo las interfaces de la característica que usa la aplicación requieren implementación, aunque como mínimo se debe admitir IHttpRequestFeature y IHttpResponseFeature.
El servidor se inicia cuando el entorno de desarrollo integrado (IDE) o editor inicia la aplicación:
Al iniciar la aplicación desde un símbolo del sistema en la carpeta del proyecto, dotnet run inicia la aplicación y el servidor (solo Kestrel y HTTP.sys). La configuración se especifica mediante la opción -c|--configuration
, que está establecida en Debug
(valor predeterminado) o Release
.
Un archivo launchSettings.json
proporciona la configuración al iniciar una aplicación con dotnet run
o un depurador integrado en las herramientas, como Visual Studio. Si hay perfiles de inicio en un archivo launchSettings.json
, use la opción --launch-profile {PROFILE NAME}
con el comando dotnet run
o seleccione el perfil en Visual Studio. Para más información, vea dotnet run y Empaquetado de distribución de .NET Core.
HTTP/2 es compatible con ASP.NET Core en los escenarios de implementación siguientes:
†Kestrel tiene compatibilidad limitada con HTTP/2 en Windows Server 2012 R2 y Windows 8.1. La compatibilidad es limitada porque la lista de conjuntos de cifrado TLS admitidos y disponibles en estos sistemas operativos está limitada. Se puede requerir un certificado generado mediante Elliptic Curve Digital Signature Algorithm (ECDSA) para proteger las conexiones TLS.
†Kestrel tiene compatibilidad limitada con HTTP/2 en Windows Server 2012 R2 y Windows 8.1. La compatibilidad es limitada porque la lista de conjuntos de cifrado TLS admitidos y disponibles en estos sistemas operativos está limitada. Se puede requerir un certificado generado mediante Elliptic Curve Digital Signature Algorithm (ECDSA) para proteger las conexiones TLS.
†Kestrel tiene compatibilidad limitada con HTTP/2 en Windows Server 2012 R2 y Windows 8.1. La compatibilidad es limitada porque la lista de conjuntos de cifrado TLS admitidos y disponibles en estos sistemas operativos está limitada. Se puede requerir un certificado generado mediante Elliptic Curve Digital Signature Algorithm (ECDSA) para proteger las conexiones TLS.
Una conexión HTTP/2 debe usar Application-Layer Protocol Negotiation (ALPN) y TLS 1.2 o posterior. Para más información, vea los temas que pertenecen a los escenarios de implementación de servidor.
Para obtener instrucciones sobre cómo crear una aplicación ASP.NET Core confiable, segura, eficaz, comprobable y escalable, consulte patrones empresariales de aplicación web. Hay disponible una aplicación web de ejemplo de calidad de producción completa que implementa los patrones.
Comentarios de ASP.NET Core
ASP.NET Core é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios:
Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis informaciónFormación
Módulo
Introducción al desarrollo web de .NET con ASP.NET Core - Training
En este módulo, obtendrá información sobre el desarrollo web de .NET con ASP.NET Core, incluyendo qué es y cuándo usarlo.
Certificación
Microsoft Certified: Windows Server Hybrid Administrator Associate - Certifications
Como administrador híbrido de Windows Server, integra los entornos de Windows Server con servicios de Azure y administra Windows Server en redes locales.
Documentación
Servidor web Kestrel en ASP.NET Core
Obtenga información sobre Kestrel, el servidor web multiplataforma de ASP.NET Core.
Implementación del servidor web HTTP.sys en ASP.NET Core
Obtenga información sobre HTTP.sys, un servidor web para ASP.NET Core en Windows. Basado en el controlador de modo kernel de HTTP.sys, HTTP.sys es una alternativa a Kestrel que se puede usar para conectarse directamente a Internet sin IIS.
Cuándo usar un proxy inverso con el servidor web Kestrel de ASP.NET Core
Obtenga información sobre cuándo usar un proxy inverso delante de Kestrel, el servidor web multiplataforma para ASP.NET Core.