deploy - ¿Cómo puedo deshabilitar el perfil de lanzamiento de IIS Express para ASP.NET Core?
publish asp net core project to iis (5)
¿Es suficiente para que simplemente elimine la opción IIS Express del archivo launchSettings.json en las propiedades del proyecto?
Eliminar las cosas en el cuadro rojo:
Ahora solo el otro perfil debería aparecer:
Tenga en cuenta que estoy usando VS2017 RC. Puede ser un error en VS2015 que te encuentres. Puede intentar editar y guardar el archivo launchSettings.json con un editor de texto separado y ver si funciona para usted. Sin embargo, puedo confirmar que esto funciona bien en VS2017 RC.
Estoy escribiendo una aplicación ASP.NET Core (en el completo .NET Framework) que usa WebListener , en lugar de Kestrel.¹ Estoy usando Visual Studio 2015 con la Actualización 3, y las herramientas ".NET Core 1.0.1 Preview 2" (la última herramienta de VS en el sitio de descarga a partir de este escrito).
Debido a que estoy usando WebListener, y debido a que WebListener , me gustaría deshabilitar el perfil de lanzamiento "IIS Express" en Visual Studio, de modo que cuando mis compañeros de equipo abran esta solución, sus Estudios Visuales se ejecutarán de manera predeterminada. Consola en lugar de IIS Express, y podrán simplemente ejecutar Ejecutar y no obtener errores.
Pero hasta ahora, no he podido deshacerme de VS del perfil de lanzamiento "IIS Express". La pestaña Propiedades del proyecto> Depurar me permite editar la lista de perfiles, pero cuando selecciono el perfil "IIS Express", el botón "Eliminar" está desactivado. Si edito launchSettings.json directamente y elimino el elemento "IIS Express" de debajo de "profiles", la operación Archivo> Guardar inserta silenciosamente el perfil "IIS Express" en el JSON que guarda en el disco.
Al parecer, Microsoft realmente quiere tener siempre un perfil de lanzamiento "IIS Express", aunque no es necesariamente compatible con todos los proyectos de ASP.NET Core. Pero vale la pena preguntar: ¿Alguien ha encontrado una manera de deshabilitar el perfil de lanzamiento "IIS Express" en un proyecto de ASP.NET Core y tiene solo las opciones de host automático en el selector de perfil de lanzamiento?
¹ Para los curiosos, estoy usando WebListener porque me permitirá hospedarme en un servicio de Windows y aún así admitir la autenticación NTLM, en una máquina sin IIS instalado. Kestrel solo admite NTLM cuando está alojado en IIS, no cuando está alojado en sí mismo.
Así que también hemos estado luchando con esto. Lo que terminamos haciendo fue tener una copia de launchsettings.json que estaba "limpia", sin el contenido de IIS Express, y luego tener una secuencia de comandos de compilación previa que copia la versión limpia sobre la versión existente.
Crea un nuevo archivo. launchSettings.json.pristine en la misma carpeta que el archivo de configuración de inicio existente.
Agregue un script de compilación previa para copiar el archivo limpio sobrescribiendo la configuración de IIS.
cd ../../../Properties copy launchSettings.json.pristine launchSettings.json
Esto debería copiarlo de manera efectiva en build / run / etc.
He creado la extensión VS 2017 para tratar con las configuraciones de lanzamiento expreso de https://marketplace.visualstudio.com/vsgallery/e09e0342-f9af-4306-8cf5-35238e34592d
La idea general es arreglar launchSettings.json para cada proyecto .net core antes de ejecutar los comandos Build / Start / StartWithoutDebugging
Lo siguiente me funcionó:
- Abrir las propiedades del proyecto.
- En la pestaña Depuración, seleccione el perfil de IIS y haga clic en Eliminar
- En el combo de lanzamiento, seleccione Proyecto
- Abra el archivo de proyecto (Edite el archivo de proyecto)
Agregue lo siguiente como la primera entrada en el
<PropertyGroup>
<OutputType>Exe</OutputType>
ACTUALIZAR:
El problema debe solucionarse con la última versión (actualización) de Visual Studio 2017.
Respuesta inicial:
Como se mencionó en los comentarios en la respuesta de ssmith , Visual Studio sigue restaurando la configuración al reiniciar.
Como no pude encontrar una solución mejor, acabo de negar los permisos de escritura en launchsettings.json
para Visual Studio. Dejé las instructions en mi otra respuesta para una pregunta similar, aquí está solo una copia y pegar:
- Actualice su
launchsettings.json
por última vez. - Cerrar Visual Studio.
- Abra la configuración de seguridad (haga clic con el botón derecho en launchsettings.json en Explorer -> Propiedades -> Seguridad)
- Haga clic en Avanzado -> Cambiar permisos
- Seleccione "Usuarios autenticados" (u otro grupo de usuarios bajo el cual Visual Studio se está ejecutando en su máquina) de la lista de "Entradas de permisos" y haga clic en Editar ->
- Marque Denegar para el permiso "Crear archivos / escribir datos".
- Haga clic en Aceptar en todos los diálogos y advertencias abiertos para guardar los cambios.
- Vuelva a abrir Visual Studio y vea que no puede hacer su actualización.
Espero eso ayude.