Visão geral sobre implantação de projetos de aplicativo da Web do ASP.NET
Após você ter criado um ASP.NETdeaplicativodaWebprojeto ou um ASP.NET projeto do siteWeb em Visual Studio 2010, você normalmente implantar o projeto em um servidor Web , onde outras pessoas podem acessar seu aplicativo. Normalmente, a implantação envolve mais do que apenas copiar os arquivos do aplicativode um servidor para outro. Você também pode ter que executar tarefas adicionais, como, por exemplo, o seguinte:
Alterando as configurações do arquivo do Web. config que devem ser diferentes no destino do ambiente, como, por exemplo, as configurações de depuraçãoou seqüências de conexão de banco de dados .
A propagação de dados ou estruturas de dados em bancos de dados que são usados peloaplicativode Web.
Configurando o IIS no computador de destino, como, por exemplo, o pool de aplicativo , ométodode autenticação, se a pesquisa no diretório é permitido e tratamento de erro .
Instalando certificados de segurança .
Definindo valores no registro do computador de destino.
Instalando o aplicativo assemblies no global assembly cache (GAC) no computador de destino.
Uma extensão do Microsoft Internet Information Services (IIS) que é denominado Implantação da Web pode automatizar a maioria das tarefas de implantação . Visual Studio fornece ferramentas que funcionam com Implantação da Web para facilitar para você implantar umprojeto Webaplicativo.
Dica
Este tópico é para aplicativos Web que são criados usando ummodelodeprojetodoaplicativo Web. Você também pode criaraplicativos daWeb usando ummodelode projetodo site Web . Para obter informações sobre como implantarprojetos de site daWeb , consulte Visão geral sobre implantação de projetos de sites do ASP.NET.
This topic contains the following sections:
Web Pacotes de implantação
Um-clique em publicar
Corporativa Cenários
-Terceiros cenários de hospedagem.
Web.. config Arquivo de transformação
Implantando um banco de dados de SQL
Estendendo o Web Publishing Pipeline
Para obter mais informações sobre os tópicos abordados nesta visão geral, consulte Mapa de conteúdo de implantação do ASP.NET.
Web Pacotes de implantação
Você pode implantar umprojeto deaplicativode Webusando o Visual Studio para criar um pacotedeimplantaçãodoWeb e instalando o pacote no servidor de destino. Umpacote de implantaçãoé um arquivo compactado (. zip) que contém as informações necessárias para configurar o aplicativo no IIS, o aplicativo de cópia arquivos a ele e configurar os recursos relacionados como, por exemplo, bancos de dados.
Você pode criar opacote de implantaçãoe instalar -lo separadamente. Como alternativa, você pode usar publicação com um clique, que permite implantar remotamente em uma única etapa. (Por padrão, publicação com um clique faz não criar um pacote, mas você pode especificar que ele deve criar um pacote se desejar.)
Além de arquivos de fonte e arquivos binário do aplicativo, umpacote de implantaçãogeralmente inclui arquivos que contêm os seguintes tipos de informações:
Configurações do IIS, como, por exemplo, o pool de aplicativo , ométodode autenticação, se a pesquisa no diretório é permitido e tratamento de erro .
Scripts de banco de dados são usados para propagar alterações para o banco de dados de dados ou estruturas de banco de dados .
Parâmetros que contêm valores que talvez precise ser alterado quando o pacote é instalado, como, por exemplo, as configurações de depuraçãoou seqüências de conexão.
Opacotede Visual Studio- processo de criação é extensível. Alguns exemplos de informações que deseja incluir em um pacote , mas que requerem extensões personalizadas incluem o seguinte:
Certificados de segurança.
Configurações do registro do Windows.
Assemblies (arquivos. dll) que devem ser instalados no GAC no computador de destino.
Especificando o que Incluir em um pacote de implantação
Visual Studio usa configurações que você criar o Pacote/publicarWeb o guia do projetoPropriedades página a fim de determinar o que ele coloca em umpacotede implantação. A ilustração a seguir mostra a Pacote/publicar Web guia.
Banco de dados-relacionados a configurações que afetam a criação do pacote são inseridos no Pacote/publicar SQL guia, que é descrita mais adiante neste tópico.
Essas duas guias permitem que as configurações de atualização o mais usado. Outras configurações que são usadas menos freqüentemente são armazenadas no arquivo deprojeto Visual Studio(. csproj ou. vbproj) e podem ser alteradas editando diretamente o arquivo.
Criando um pacote de implantação
Você pode criar um pacote das seguintes maneiras:
Use ferramentas Visual Studio.
Use o comando do MSBuild diretamente a partir da linha de comando.
Use o comando do MSBuild indiretamente a partir do PowerShell ou Team Build.
Instalando um pacote de implantação
Após você criar uma implantação pacote, instalar -o em um computador de destino. Implantação da Webusa as informações no pacote para configurar o IIS para configurar a bancos de dados, criar estruturas de pasta e copiar arquivos para eles e fazer mais nada, isto é necessário em ordem para implantar o aplicativo.
Você pode instalar um pacote das seguintes maneiras:
Use Implantação da Web a partir da linha de comando.
Usar um arquivo. cmd Visual Studio cria que contém o Implantação da Web comandos que instalar o pacote. Implantação da Webos comandos podem ser longo e complexo, e esse arquivo é fornecido para facilitar a instalar um pacote a partir da linhade comando.
Use o Gerenciador do IIS.
Use o PowerShell para executar Implantação da Web comandos.
Você pode incluir parâmetros em um pacote quando você criar -lo. Esses são pares de valor de nome-que você fornece um valor padrão para quando o pacote é criado, mas que, para o qual um novo valor pode ser fornecido quando o pacote é instalado. Se você usar o Gerenciador do IIS para instalar o pacote, os nomes de parâmetro são exibidos usando caixas de texto para que você possa inserir novos valores. Se você instalar usando Implantação da Web a partir da linha de comando, você pode especificar valores de parâmetro em um arquivo XML .
Local e o conteúdo da Pastade pacote
Por padrão, o Visual Studio gera pacotes de implantação na pasta identificada pelo MSBuild IntermediateOutputPath propriedade. O IntermediateOutputPath propriedade refere-se do projetoobj\configuração pasta, como mostrado na ilustração a seguir, da Solution Explorer janela:
Os nomes predefinidos para configuração são Debug (conforme mostrado na ilustração anterior) e Release. Você pode definir configurações adicionais de compilação.
O pacote é criado em uma pasta que é chamada de pacote. A pasta de pacote contém os seguintes arquivos:
ProjectName. zip. Este é o real de implantação pacote.
ProjectName.implantar. cmd. Este é um comando -linha arquivo em lotes que chama Implantação da Web para tornar mais fácil para você instalar o pacote a partir da linha de comando.
ProjectName.SetParameters.xml. Este arquivo contém parâmetros que são passados para Implantação da Web Quando você usa o arquivo. cmd implantarpara instalar o pacote. Para cada parâmetro, um valor padrão é especificado, que é determinado pelas configurações depacote Visual Studio. Por exemplo, você pode alterar esses valores se você deseja instalaraplicativo da Webpara vários servidores, mas usa configurações diferentes para cada servidor.
ProjectName.SourceManifest.xml. Este arquivo contém configurações que Visual Studio passado para Implantação da Webe que Implantação da Web usado para criar opacotede Web. Este arquivo é exigido por Implantação da Web somente em ordem para criar o pacote. Ele não é usado quando o pacote é instalado.
Se você optar por não criar o pacote como um.arquivo zip, os arquivos que seriam armazenados na.arquivo zip estão localizados em uma pasta chamada Archive. Nesse caso, o primeiro nó do cmd implantar, SetParameter.xml e SourceManifest.xml os nomes de arquivo é "Archive" em vez de projectname.
As inter-relações entre Visual Studio, Implantação da Web, e esses arquivos são mostrados na ilustração a seguir:
Um-clique em publicar
Você também pode implantar remotamente usando o Visual Studio publicação com um clique recurso. Nesse caso, você especificar em umanalisar de publicarcomo e onde o Visual Studio deve implantar o aplicativo. A ilustração a seguir mostra a O perfil de publicação caixa de diálogo.
Se você usar publicação com um clique para implantar seu aplicativo para um terceiro-empresa de hospedagem de terceiros, a empresa de hospedagem geralmente fornecerá a você com as configurações que você precisa para o O perfil de publicação caixa de diálogo.
Quando terminar de especificar as configurações de publicar , você pode clicar a Publicar botão nesta caixa de diálogo ou do Web um clique em Publicar barra de ferramentas. Em seguida, oVisual Studio implanta o aplicativo no computador de destino. Quando você clica no Publicar botão após já ter sido implantado umprojeto deaplicativode Web, Visual Studio reimplanta somente os itens alterados.
Você pode criar vários perfis para que você possa publicar servidores diferentes ou para o mesmo servidor com configurações diferentes.
Corporativa Cenários
Em um ambientedo enterprise, você normalmente implantar em um computador de desenvolvimento para um ou mais ambientes intermediários, como, por exemplo, um servidor de teste ou de um servidor de teste. A partir de um dos ambientes de intermediários, você e implantar o ambientede produção.
Inicial implantação do ambientede desenvolvimento, os cenários típicos incluem o seguinte:
Criar umpacote de implantaçãousando o Visual Studio e instalar -lo manualmente.
Criar e instalarpacote de implantaçãousando um comando -linhaprocesso. Isso geralmente é feito no modo em lotes de uma fonte-repositório de controle usando MSBuild.
Use publicação com um clique. Essa opção estará disponível se o computador de desenvolvimento tem acesso remoto para o ambientedo destino, se o computador de destino estiver configurado para o método de publicação que você selecionar e se você tiver as permissões apropriadas no computador de destino. Por padrão, publicação com um clique não não criar um pacote. No entanto, você pode especificar que um pacote deve ser criado para uso como um arquivamento ou backup.
Para implantar a partir de um ambiente para o próximo após a implantaçãoinicial, você pode usar o mesmo pacote que foi criado para a implantaçãoinicial. Como alternativa, você pode usar Implantação da Web para criar um novo pacote no computador que você estiver implantando no.
A ilustração a seguir mostra algumas situações empresariais típicas.
-Terceiros cenários de hospedagem.
Se você usar um terceiro-empresas de hospedagem e implantar diretamente do seu computador de desenvolvimento para a empresa de hospedagem , você tem as seguintes opções:
Use Visual Studio publicação com um clique.
Criar um pacote e usar o Gerenciador do IIS para instalar -lo remotamente.
A empresa de hospedagem , seu aplicativo pode ficar em um ambiente de compartilhado ou em servidores dedicados. Para aplicativos que são hospedados em ambientes compartilhados, existem limitações normalmente significativas na sua capacidade de configurar o ambiente. Por exemplo, você normalmente não é permitidas para alterar as configurações do IIS em umambientede hospedagemcompartilhada.
A ilustração a seguir mostra alguns terceiro típico-cenários de hospedagem de terceiros.
Web.. config Arquivo de transformação
Web. config arquivos normalmente incluem configurações que devem ser diferentes dependendo do que o ambiente do aplicativo está sendo executado no. Por exemplo, talvez você precise fazer alterações, como a seguir, quando você implantar um. config de Webde arquivo para um servidor de destino:
Alterar umacadeia de conexão de banco de dadospara apontar para a produção de banco de dados.
Desative a depuração no ambientede produção.
Remover informações confidenciais, como, por exemplo, seqüências de caracteres de conexão, como, por exemplo, se você fornecer um pacote para um site da comunidade.
Para gerenciar manualmente as alterações em um arquivo de Web. config, você pode fazer o seguinte:
Edite o arquivo Web. config no servidor de destino cada vez que o projeto for implantado.
Manter versões separadas do arquivo Web. config para cada ambiente (talvez em pastas separadas ou usando os nomes distintos) e, em seguida, copie somente a versão que seja apropriado para o ambiente de destino quando você implantar.
Crie arquivos XSLT para transformar o. config da Webe aplicar as transformações quando o aplicativo for implantado.
Para projetos deaplicativo Web, ASP.NET fornece ferramentas para automatizam o processo de alteração (transformação) arquivos do Web. config quando eles são implantados. Para cada ambiente que você deseja implantar , você criar um arquivo de transformação que especifica que somente as diferenças no arquivo Web. config para esse ambiente.
Os nomes de arquivo de transformação incluem o nome do destino ambiente (o nome da configuração da compilação ) como um nó adicional entre "Web" e "config". Por exemplo, o arquivo de transformação para a configuração da compilação de depuração é Web.Debug.config. O Visual Studio Solution Explorer janela agrupa automaticamente esses arquivos sob o arquivo Web. config, como mostrado na ilustração a seguir:
Um arquivo de transformação é um arquivo XML que especifica como o arquivo Web. config deve ser alterado. Transforme os atributos XML de uso de arquivos que foram desenvolvidos especificamente para transformar arquivos do Web. config para implantação. Por exemplo, suponha que seu arquivo de Web. config tem a seção de cadeia de conexão a seguir:
<connectionStrings>
<add name="ApplicationServices"
connectionString="[TestDatabase]" />
</connectionStrings>
O arquivo de transformação a seguir especifica que a cadeia de conexão chamado ApplicationServices deve ser convertido automaticamente para apontar para um banco de dados de produção quando oaplicativo de Webfor implantado.
<?xml version="1.0"?>
<configuration xmlns:xdt="https://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="ApplicationServices"
connectionString="[ProductionDatabase]"
xdt:Transform="Replace" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
No exemplo, o Locatoro valor doatributo Match(name) Especifica que somente o add elemento tem o mesmo nome (ApplicationServices) devem ser alteradas. O Transformo valor doatributo Replace Especifica que oprocesso de implantaçãodeve substituir todo o add elemento.
Implantando um banco de dados de SQL
Quando você implantar umaplicativo de Webque usa um de SQL banco de dados, você pode também ter que propagar as estruturas de dados, dados ou ambos. Visual Studio pode automaticamente criar scripts (arquivos. SQL) para fazer isso no destino de banco de dadose esses scripts podem ser incluídos nopacotede Web. Você também pode incluir scripts personalizados de SQL e especificar a ordem na qual os scripts devem ser executados. Implantação da Webexecuta os scripts no servidor de destino quando o pacote é instalado.
Você especificar opções de implantação de SQL sobre o Pacote/publicar SQL guia do projetoPropriedades página. A ilustração a seguir mostra a SQLde pacote/publicar guia.
Estendendo o Web Publishing Pipeline
O Pipeline de publicação de Web (WPP) é o processo que Visual Studio usa quando você criar umpacote de implantaçãoou usar publicação com um clique. O trabalho realizado o WPP realmente é feito pelo MSBuild e Implantação da Web. É por isso a mesma funcionalidade está disponível em Visual Studio ou ao usar ferramentas delinha comando - implantar.
Podem ser estendidos a alguns aspectos do WPP modificando os arquivos XML que controlam o comportamento do MSBuild. Por exemplo, tarefas que você pode manipular modificando os arquivos XML incluem o seguinte:
Excluindo pastas ou arquivos específicos deaplicativo Webdo pacote.
Oaplicativo antes do pacote de pré-compilação na Webé criado.
Instalando o aplicativo assemblies no GAC no servidor de destino.
Atualizando as chaves de registro no servidor de destino.
Instalando certificados SSL no servidor de destino.
Outras tarefas que exigem que você estender ambas MSBuild e Implantação da Web. Por exemplo, suponha que seuaplicativo de Webusa o MSMQ e deseja automatizar a implantaçãodo MSMQ. Você pode fazer isso criando um MSMQ provedor para Implantação da Web e adicioná-lo para o WPP modificando os arquivos que controlam o MSBuild.
Implantação da Webusa o.NET Frameworko modelo doprovedor . Cada tipo de informação que precisa ser gerenciado para implantação é tratado por um provedor. Por exemplo, é um provedor para configurações do IIS, um provedor para bancos de dados de SQL , um provedor deconteúdo de Webcomo arquivos. HTML e arquivos. aspx e assim por diante.
Quando Implantação da Web cria um pacote, ele chama cada provedor para reunir as informações pertinentes aoaplicativo da Webque será implantado. Implantação da Webinvoca o provedor para serializar as informações e armazená-lo em arquivos. Quando Implantação da Web instala o pacote, o provedor lê os arquivos que ele criou para o pacote e desserializa as informações necessárias para re -criar as configurações originais do ambientede destino. Provedores deve ser capaz de lidar com parâmetros de tempo de instalação-. Ou seja, eles devem ser capazes de trabalhar com os valores são fornecidos no momento da instalação no O Gerenciador do IIS interface do usuário ou em um arquivo de Parameters.xml.
As ilustrações a seguir mostram o fluxo de dados entre as informações de umaplicativoda Web, Implantação da Web provedores, o Implantação da Web API, de implantaçãopacotee um arquivo de parâmetros. Na ilustração, o Parameters.xml é mostrado ao lado do pacote .oarquivo zip para ilustrar sua função. No entanto, Parameters.xml, na verdade, está incluído no pacote .arquivo zip.
Computador de desenvolvimento
Web Servidor
Implantação da Webfornece provedores para a maioria dos tipos de recursos que podem estar associados umaplicativode Web. No entanto, você pode escrever um provedor de personalizado se nenhum o-integrado nos provedores é apropriada para suas necessidades. Para obter uma lista de provedores disponíveis, consulte de implantar ProvedoresWeb no site da Web do Microsoft TechNet.
A ilustração a seguir mostra uma típica de sequência de etapas do WPP quando você usa Implantação da Web pacote ou publicar. Isso mostra um WPP que tenha sido estendido adicionando as seguintes etapas:
Excluindo os arquivos especificados.
Pré-compilar oaplicativode Web.
Implantar assemblies do GAC , COM assemblies e chaves do registro.
Implantando certificados SSL.
Se você optar por implantar , usando publicação com um clique e usando um método diferente de Implantação da Web, você pode estender somente as partes do WPP que fazer, não aplicar a Implantação da Web, conforme mostrado na ilustração a seguir:
Para exemplos que descrevem como estender o Pipeline de publicação da Web para cenários específicos, consulte as seguintes entradas no blog da equipe de desenvolvedores do Visual Web: