Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 32993|Resposta: 0

[Fonte] Publique seu projeto em um servidor IIS remoto usando o VS 2019

[Copiar link]
Publicado em 09/10/2020 12:09:22 | | | |
No passado, ao publicar projetos, os arquivos eram copiados e colados no diretório do site, ou enviados para o diretório via FTP, mas agora, com o surgimento da integração contínua, operação e manutenção automatizadas, e publicação automatizada, os projetos de publicação também estão mudando a cada dia que passa.

Este artigo descreve como publicar remotamente em um site IIS remoto via VS 2019.

Sistema de Servidor Remoto: Windows Server 2019 64-bit

Configuração do servidor

1. Adicionar IIS, instalar o framework .NET (omitido)

2. Baixar e instalar Web Deploy

O Web Deploy pode ser usado para implantar projetos web local e remotamente no seguinte endereço:O login do hiperlink está visível.



No momento da instalação, selecione"Completo"Após a instalação, você verá o serviço "Web Management Service" no serviço, conforme mostrado na figura abaixo:



Se não estiver instalado, o VS receberá o seguinte erro ao publicar remotamente:

---------------------------
Microsoft Visual Studio
---------------------------
Falhou ao conectar ao computador remoto ("xx"). Certifique-se de que o Web Deploy esteja instalado na máquina remota e que o processo necessário ("Web Management Service") seja iniciado.  Saiba mais em:https://go.microsoft.com/fwlink/ ... ATION_NOT_REACHABLE。 Não é possível conectar a servidores remotos
---------------------------
Tem certeza   
---------------------------


3. Instalar "Scripts e Ferramentas de Gerenciamento IIS"

Vá em Selecionar Papéis de Servidor > Web Server (IIS) > Ferramentas Administrativas, depois selecione a função de Scripts e Ferramentas Administrativas IIS, clique em Próximo e instale a função.



4. O IIS permite conexões remotas

Localize o serviço de gerenciamento no IIS e ative conexões remotas, conforme mostrado na imagem a seguir:





(Nota:Abra a porta de entrada 8172 no firewall e no grupo de segurança

5. Criar um novo site IIS

Crie um novo site chamado test1, como mostrado na figura a seguir:



6. O IIS adiciona usuários administrativos

Adicione um usuário do IIS Manager, como mostrado na imagem a seguir:



Ao mesmo tempo, no site test1, adicione autorização, como mostrado na figura abaixo:



Se você não adicionar autorização, o seguinte erro será reportado ao publicar remotamente:

---------------------------
Microsoft Visual Studio
---------------------------
Você se conectou a um computador remoto ("xxx") usando o serviço de gerenciamento web, mas não autorizou. Certifique-se de usar o nome de usuário e senha corretos, que o site ao qual você está conectado já exista e que o usuário cujas credenciais representam tenha acesso ao site.  Saiba mais em:https://go.microsoft.com/fwlink/ ... R_USER_UNAUTHORIZED。 O servidor remoto retorna um erro: (401) Não autorizado.
---------------------------
Tem certeza   
---------------------------
Lançamento ASP.NET projeto MVC

Primeiro, crie um novo projeto MVC .NET 4.6.2 asp.net com o nome WebAutomatedDeployment usando VS 2019,

Crie duas novas bibliotecas, e o programa do site faz referência a essas duas bibliotecas ao mesmo tempo. (Crie e faça referência a 2 bibliotecas porque a simulação está mais próxima do projeto oficial)


Tente começar o projeto conforme mostrado abaixo:



Clique com o botão direito no projeto, selecione Publicar, Servidor Web (IIS)-> Web Deployment e preencha as informações do servidor, conforme mostrado na figura a seguir:



Verifique a conexão e o teste passa, como mostrado na imagem a seguir:



Quando tentei publicar, o erro foi o seguinte:

A tarefa de implantação web falhou. ((2020/10/9 11:34:38) Solicitação de processamento de erro no computador remoto. )

(9/10/2020 11:34:38) Solicitação de processamento de erro no computador remoto.
O servidor está tendo dificuldades para processar a solicitação. Entre em contato com o administrador do seu servidor para mais detalhes.        WebAutomatedDeployment 0
Você pode visualizar erros específicos através do Server Event Viewer, conforme mostrado na figura a seguir:



User: itsvse
IP do 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:
Ocorreu uma exceção de agente de implantação de rastreamento propagada ao cliente. ID do pedido "def8d9f7-1a72-4b19-8b75-919f8c6a9604", carimbo de data e hora do pedido: "2020/10/9 11:51:29". Detalhes do erro:
System.UnauthorizedAccessException: 尝试执行未经授权的操作。
   Em System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, nome da cadeia, handle SafeHandle, SecurityInfos securityInformation, proprietário do SecurityIdentifique, grupo SecurityIdentifier, GenericAcl sacl, GenericAcl dacl)
   em System.Security.AccessControl.NativeObjectSecurity.Persist(Nome da cadeia, HandleSafeHandle, AccessControlSections incluiSections, Object exceptionContext)
   Em 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)
   em Microsoft.Web.Deployment.DeploymentObject.Update(SourceDeploymentObject, DeploymentSyncContext syncContext)
   em Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObjectSourceObject)
   em Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, fonte do DeploymentObject)
   em Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DestinationObjectDestinationObject, SourceSourceObject)
   Em Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable'1 syncPassId, String syncSessionId)
   at 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)
Solução:

Reinicie as ferramentas VS, clique em Publicar, e a imagem a seguir aparecerá:



Confere "Guarde este certificado para futuras sessões em Visual Studia" pode ser resolvido.

Na primeira vez que foi publicado, foi lento porque todos os arquivos precisavam ser enviados para o servidor, como mostrado na figura abaixo:



Tente modificar o arquivo de página Index.cshtml e clique em Republicar, apenas os seguintes 3 arquivos serão atualizados, conforme mostrado na figura abaixo:



Atualize o site e veja que ele foi atualizado, conforme mostrado abaixo:



(Fim)




Anterior:Construa um proxy de VPN OCSERV no CentOS 7
Próximo:Aspose.Cells Três Mosqueteiros
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com