En el pasado, al publicar proyectos, los archivos se copiaban y pegaban en el directorio del sitio, o se subían al directorio del sitio mediante FTP, pero ahora, con la aparición de la integración continua, la operación y mantenimiento automatizados, y la publicación automatizada, los proyectos de publicación también están cambiando con cada día que pasa.
Este artículo describe cómo publicar remotamente en un sitio IIS remoto a través de VS 2019.
Sistema de servidor remoto: Windows Server 2019 de 64 bits
Configuración del servidor
1. Añadir IIS, instalar .NET framework (omitido)
2. Descargar e instalar Web Deploy
Web Deploy puede utilizarse para desplegar proyectos web local y remotamente en la siguiente dirección:El inicio de sesión del hipervínculo es visible.
En el momento de la instalación, seleccione"Completo"Tras la instalación, verás el servicio "Web Management Service" en el servicio, como se muestra en la figura siguiente:
Si no está instalado, VS recibirá el siguiente error al publicar remotamente:
--------------------------- Microsoft Visual Studio --------------------------- No se ha podido conectar al ordenador remoto ("xx"). Asegúrate de que Web Deploy esté instalado en la máquina remota y que se inicie el proceso requerido ("Web Management Service"). Más información en:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 No se puede conectar a servidores remotos --------------------------- Estás seguro ---------------------------
3. Instalar "scripts y herramientas de gestión IIS"
Ve a Seleccionar Roles de Servidor > Servidor Web (IIS) > Herramientas Administrativas, luego selecciona el rol de Scripts y Herramientas Administrativas IIS, haz clic en Siguiente e instala el rol.
4. IIS permite conexiones remotas
Localiza el servicio de gestión en IIS y activa las conexiones remotas, como se muestra en la siguiente imagen:
(Nota:Abre el puerto entrante 8172 en el cortafuegos y el grupo de seguridad)
5. Crear un nuevo sitio IIS
Crea un nuevo sitio llamado test1, como se muestra en la siguiente figura:
6. IIS añade usuarios administrativos
Añadir un usuario de IIS Manager, como se muestra en la siguiente imagen:
Al mismo tiempo, en el sitio test1, añadir autorización, como se muestra en la figura siguiente:
Si no añades autorización, se reportará el siguiente error al publicar remotamente:
--------------------------- Microsoft Visual Studio --------------------------- Te has conectado a un ordenador remoto ("xxx") usando el servicio de gestión web, pero no has autorizado el proceso. Asegúrate de usar el nombre de usuario y la contraseña correctos, de que el sitio al que estás conectado ya exista y que el usuario cuyas credenciales representan tenga acceso al sitio. Más información en:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 El servidor remoto devuelve un error: (401) No autorizado. --------------------------- Estás seguro --------------------------- Lanzamiento ASP.NET proyecto MVC
Primero, crear un nuevo proyecto MVC .NET 4.6.2 asp.net con el nombre WebAutomatedDeployment usando VS 2019,
Crea dos nuevas bibliotecas y el programa web hace referencia a estas dos bibliotecas al mismo tiempo. (Crear y referenciar 2 bibliotecas porque la simulación está más cerca del proyecto oficial)
Intenta empezar el proyecto como se muestra a continuación:
Haz clic derecho en el proyecto, selecciona Publicar, Web Server (IIS)-> Web Deployment y rellena la información del servidor, como se muestra en la siguiente figura:
Verifica la conexión y la prueba pasa, como se muestra en la siguiente imagen:
Cuando intenté publicar, el error fue el siguiente:
La tarea de despliegue web falló. ((9/10/2020 11:34:38) Solicitud de procesamiento de error en un ordenador remoto. )
(9/10/2020 11:34:38) Solicitud de procesamiento de error en un ordenador remoto. El servidor está teniendo problemas para procesar la solicitud. Contacta con el administrador de tu servidor para más detalles. WebAutomatedDeployment 0 Puedes ver errores específicos a través del Visor de Eventos del Servidor, como se muestra en la siguiente figura:
User: itsvse IP del cliente: xxx
Content-Type: application/msdeploy
Version: 9.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 9.0.3802.0
MSDeploy.Method: Sync
MSDeploy.RequestId: def8d9f7-1a72-4b19-8b75-919f8c6a9604
MSDeploy.RequestCulture: zh-CN
MSDeploy.RequestUICulture: zh-CN
ServerVersion: 9.0.1973.0
Skip: objectName="^configProtectedData$"
Provider: auto, Path: Se produjo una excepción de agente de despliegue de traza propagada al cliente. ID de la solicitud "def8d9f7-1a72-4b19-8b75-919f8c6a9604", marca de tiempo de la solicitud: "2020/10/9 11:51:29". Detalles del error:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。 En System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, nombre de cadena, SafeHandle handle, SecurityInfos securityInformation, propietario de SecurityIdentifique, grupo SecurityIdentifiqued, GenericAcl sacl, GenericAcl dacl) en System.Security.AccessControl.NativeObjectSecurity.Persist(Nombre de cadena, HandleSafeHandle, AccessControlSections incluySections, Object exceptionContext) En System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext) at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path, Boolean isFile) at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf) en Microsoft.Web.Deployment.DeploymentObject.Update(SourceDeploymentObject, DeploymentSyncContext syncContext) en Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObjectSourceObject) en Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) en Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObjectDestinationObject, DeploymentObjectSourceObject) En Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId) en Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable'1 passId, String user, String siteName) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) Solución:
Reinicia VS Tools, haz clic en Publicar y aparecerá la siguiente imagen:
Comprobado "Guarda este certificado para futuras sesiones en Visual Studia" se puede resolver.
La primera vez que se publicó, fue lento porque todos los archivos tenían que ser subidos al servidor, como se muestra en la figura siguiente:
Intenta modificar el archivo de página Index.cshtml y haz clic en Republicar; solo se actualizarán los siguientes 3 archivos, como se muestra en la figura siguiente:
Actualiza la página web y descubre que ha sido actualizada, como se muestra a continuación:
(Fin)
|