Contamos con tu ayuda para compartir nuestras secciones con relación a las ciencias de la computación.
Solución:
Esta respuesta se escribió originalmente para ASP.NET Core RC1. En RC2, ASP.NET Core pasó del controlador httpPlafrom genérico a uno específico de aspnetCore. Tenga en cuenta que el paso 3 depende de la versión de ASP.NET Core que esté utilizando.
Resulta que las variables de entorno para los proyectos de ASP.NET Core se pueden configurar sin tener que configurar variables de entorno para el usuario o sin tener que crear varias entradas de comandos.
- Vaya a su aplicación en IIS y elija
Configuration Editor
. - Seleccione
Configuration Editor
- Escoger
system.webServer/aspNetCore
(RC2 y RTM) osystem.webServer/httpPlatform
(RC1) enSection
caja combo - Escoger
Applicationhost.config ...
enFrom
caja combo. - Haga clic derecho en
enviromentVariables
elemento, seleccione'environmentVariables' element
luegoEdit Items
.
- Establezca sus variables de entorno.
- Cierre la ventana y haga clic en Aplicar.
- Hecho
De esta manera, no tiene que crear usuarios especiales para su grupo o crear entradas de comandos adicionales en project.json
. Además, agregar comandos especiales para cada entorno rompe “compilar una vez, implementar muchas veces”, ya que tendrá que llamar dnu publish
por separado para cada entorno, en lugar de publicar una vez e implementar el artefacto resultante muchas veces.
Actualizado para RC2 y RTM, gracias a Mark G y tredder.
Actualizar web.config con un
O para evitar perder esta configuración al sobrescribir web.config, realice cambios similares en applicationHost.config especificando la ubicación del sitio como sugiere @NickAb.
Editar: a partir de las versiones RC2 y RTM, este consejo está desactualizado. La mejor manera que he encontrado para lograr esto en el lanzamiento es editar las siguientes secciones de web.config en IIS para cada entorno:
system.webServer/aspNetCore
:
Edite la entrada de variable de entorno y agregue una configuración de variable de entorno:
ASPNETCORE_ENVIRONMENT
: < Your environment name >
Como alternativa al enfoque de drpdrp, puede hacer lo siguiente:
-
En su proyecto.json, agregue comandos que pasen la variable ASPNET_ENV directamente a Kestrel:
"commands": "Development": "Microsoft.AspNet.Server.Kestrel --ASPNET_ENV Development", "Staging": "Microsoft.AspNet.Server.Kestrel --ASPNET_ENV Staging", "Production": "Microsoft.AspNet.Server.Kestrel --ASPNET_ENV Production"
-
Al publicar, utilice el
--iis-command
opción para especificar un entorno:dnu publish --configuration Debug --iis-command Staging --out "outputdir" --runtime dnx-clr-win-x86-1.0.0-rc1-update1
Encontré que este enfoque es menos intrusivo que crear usuarios adicionales de IIS.
No se te olvide dar recomendación a este artículo si te fue útil.