Implantação do site com o uso de um cliente de FTP (C#)
por Scott Mitchell
A maneira mais simples de implantar um aplicativo ASP.NET é copiar manualmente os arquivos necessários do ambiente de desenvolvimento para o ambiente de produção. Este tutorial mostra como usar um cliente FTP para obter os arquivos da área de trabalho para o provedor de host da Web.
Introdução
O tutorial anterior introduziu uma simples Revisão de Livros ASP.NET aplicativo Web, que é composto por um punhado de páginas ASP.NET, uma página master, uma classe base Page
personalizada, várias imagens e três folhas de estilo CSS. Agora estamos prontos para implantar esse aplicativo em um provedor de host Web, momento em que o aplicativo estará acessível a qualquer pessoa com uma conexão com a Internet!
Em nossas discussões no tutorial Determinando quais arquivos precisam ser implantados , sabemos quais arquivos precisam ser copiados para o provedor de host da Web. (Lembre-se de que quais arquivos são copiados depende se o aplicativo é compilado explicitamente ou automaticamente.) Mas como obter os arquivos do ambiente de desenvolvimento (nossa área de trabalho) até o ambiente de produção (o servidor Web gerenciado pelo provedor de host web)? O F ile T ransfer P rotocol (FTP) é um protocolo comumente usado para copiar arquivos de um computador para outro em uma rede. Outra opção é FPSE (FrontPage Server Extensions). Este tutorial se concentra no uso de software cliente FTP autônomo para implantar os arquivos necessários do ambiente de desenvolvimento no ambiente de produção.
Observação
O Visual Studio inclui ferramentas para publicar sites via FTP; essas ferramentas, bem como uma olhada nas ferramentas que usam FPSE, são abordadas no próximo tutorial.
Para copiar os arquivos usando FTP, precisamos de um cliente FTP no ambiente de desenvolvimento. Um cliente FTP é um aplicativo projetado para copiar arquivos do computador instalado em um computador que está executando um servidor FTP. (Se o provedor de host Web dá suporte a transferências de arquivos via FTP, como a maioria faz, há um servidor FTP em execução em seus servidores Web.) Há vários aplicativos cliente FTP disponíveis. Seu navegador da Web pode até mesmo dobrar como um cliente FTP. Meu cliente FTP favorito e o que usarei para este tutorial é o FileZilla, um cliente FTP gratuito e de software livre que está disponível para Windows, Linux e Macs. Qualquer cliente FTP funcionará, portanto, fique à vontade para usar qualquer cliente com o qual você esteja mais confortável.
Se você estiver acompanhando, precisará criar uma conta com um provedor de host da Web antes de concluir este tutorial ou os seguintes. Conforme observado no tutorial anterior, há um grupo de empresas de provedores de host Web com um amplo espectro de preços, recursos e qualidade de serviço. Para esta série de tutoriais, usarei o ASP.NET de Desconto como meu provedor de host da Web, mas você poderá acompanhar qualquer provedor de host da Web, desde que ele dê suporte à versão ASP.NET em que seu site foi desenvolvido. (Esses tutoriais foram criados usando ASP.NET 3.5.) Além disso, como copiaremos os arquivos para o provedor de host da Web usando FTP neste tutorial e, nos próximos, é imperativo que o provedor de host da Web dê suporte ao acesso FTP aos servidores Web. Praticamente todos os provedores de host da Web oferecem esse recurso, mas você deve marcar duas vezes antes de se inscrever.
Implantando o projeto de aplicativo Web book review
Lembre-se de que há duas versões do aplicativo Web Book Review: uma implementada usando o modelo projeto de aplicativo Web (BookReviewsWAP) e outra usando o modelo projeto de site (BookReviewsWSP). O tipo de projeto influencia se o site é compilado automaticamente ou explicitamente e esse modelo de compilação determina quais arquivos precisam ser implantados. Consequentemente, examinaremos a implantação dos projetos BookReviewsWAP e BookReviewsWSP separadamente, começando com BookReviewsWAP. Reserve um momento para baixar esses dois aplicativos ASP.NET se você ainda não tiver feito isso.
Inicie o projeto BookReviewsWAP navegando até a BookReviewsWAP
pasta e clicando duas vezes no BookReviewsWAP.sln
arquivo. Antes de implantar o projeto, é importante compilá-lo para garantir que todas as alterações no código-fonte sejam incluídas no assembly compilado. Para compilar o projeto, acesse o menu Compilar e escolha a opção de menu Build BookReviewsWAP. Isso compila o código-fonte no projeto em um único assembly, BookReviewsWAP.dll
, que é colocado na Bin
pasta .
Agora estamos prontos para implantar os arquivos necessários! Inicie seu cliente FTP e conecte-se ao servidor Web em seu provedor de host Web. (Quando você se inscreve em uma empresa de hospedagem da Web, eles enviarão informações por email sobre como se conectar ao servidor FTP; isso inclui o endereço do servidor FTP, bem como um nome de usuário e senha.)
Copie os arquivos a seguir da área de trabalho para a pasta do site raiz em seu provedor de host web. Quando você entra no servidor Web no provedor de host da Web, é provável que esteja no diretório do site raiz. No entanto, alguns provedores de host da Web têm uma subpasta chamada www
ou wwwroot
que serve como a pasta raiz dos arquivos do site. Por fim, ao FTPing dos arquivos, talvez seja necessário criar a estrutura de pasta correspondente no ambiente de produção – a Bin
pasta, a Fiction
pasta, a Images
pasta e assim por diante.
~/Default.aspx
~/About.aspx
~/Site.master
~/Web.config
~/Web.sitemap
- O conteúdo completo da
Styles
pasta - O conteúdo completo da
Images
pasta (e sua subpasta,BookCovers
) ~/Fiction/Default.aspx
~/Fiction/Blaze.aspx
~/Tech/Default.aspx
~/Tech/CYOW.aspx
~/Tech/TYASP35.aspx
~/Bin/BookReviewsWAP.dll
A Figura 1 mostra FileZilla depois que os arquivos necessários foram copiados. FileZilla exibe os arquivos no computador local à esquerda e os arquivos no computador remoto à direita. Como mostra a Figura 1, os arquivos de código-fonte ASP.NET, como About.aspx.cs
, estão no computador local (o ambiente de desenvolvimento), mas não foram copiados para o provedor de host da Web (o ambiente de produção) porque os arquivos de código não precisam ser implantados ao usar a compilação explícita.
Observação
Não há nenhum dano em ter os arquivos de código-fonte no servidor de produção, pois eles são ignorados. ASP.NET proíbe solicitações HTTP para arquivos de código-fonte por padrão para que, mesmo que os arquivos de código-fonte estejam presentes no servidor de produção, eles estejam inacessíveis aos visitantes do seu site. (Ou seja, se um usuário tentar visitar http://www.yoursite.com/Default.aspx.cs
, ele receberá uma página de erro que explica que esses tipos de arquivos - .cs
arquivos - são proibidos.)
Figura 1: usar um cliente FTP para copiar os arquivos necessários da área de trabalho para o servidor Web no provedor de host da Web (clique para exibir a imagem em tamanho real)
Depois de implantar seu site, reserve um momento para testar o site. Se você comprou um nome de domínio e definiu as configurações de DNS corretamente, poderá visitar seu site inserindo o nome de domínio. Como alternativa, seu provedor de host da Web deve ter fornecido uma URL para seu site, que será semelhante ao nome da conta. webhostprovider.com ou webhostprovider.com/accountname. Por exemplo, a URL da minha conta no ASP.NET de Desconto é: http://httpruntime.web703.discountasp.net
.
A Figura 2 mostra o site de Revisões de Livros implantado. Observe que estou exibindo-o no ASP de Desconto. Servidores do NET, em http://httpruntime.web703.discountasp.net
. Neste momento, qualquer pessoa com uma conexão com a Internet pode exibir meu site! Como esperávamos, o site parece e se comporta da mesma forma que fez ao testá-lo no ambiente de desenvolvimento.
Observação
Se você receber um erro ao exibir seu aplicativo, demorou um pouco para garantir que você implantou o conjunto correto de arquivos. Em seguida, marcar a mensagem de erro para ver se ela revela alguma pista sobre o problema. Depois disso, você pode recorrer à assistência técnica da sua empresa de host web ou postar sua pergunta no fórum apropriado nos Fóruns do ASP.NET.
Figura 2: O site revisões de livros agora está acessível para qualquer pessoa com uma conexão com a Internet (clique para exibir imagem em tamanho real)
Implantando o projeto de site de revisão de livros
Ao implantar um aplicativo ASP.NET que usa compilação automática, como o BookReviewsWSP Web Site Project, não há nenhum assembly compilado na Bin
pasta. Como resultado, os arquivos de código-fonte do aplicativo Web devem ser implantados no ambiente de produção. Vamos percorrer esse processo.
Assim como acontece com o Projeto de Aplicativo Web, é sábio primeiro criar o aplicativo antes de implantá-lo. Ao criar um Projeto de Site não criar um assembly, ele marcar para erros em tempo de compilação na página. É melhor encontrar esses erros agora em vez de ter um visitante em seu site descobri-los para você!
Depois de criar o projeto com êxito, use o cliente FTP para copiar os arquivos a seguir para a pasta do site raiz em seu provedor de host da Web. Talvez seja necessário criar a estrutura de pasta correspondente no ambiente de produção.
Observação
Se você já implantou o projeto BookReviewsWAP, mas ainda deseja tentar implantar o projeto BookReviewsWSP, primeiro exclua todos os arquivos no servidor Web que foram carregados ao implantar BookReviewsWAP e implante os arquivos para BookReviewsWSP.
~/Default.aspx
~/Default.aspx.cs
~/About.aspx
~/About.aspx.cs
~/Site.master
~/Site.master.cs
~/Web.config
~/Web.sitemap
- O conteúdo completo da
Styles
pasta - O conteúdo completo da
Images
pasta (e sua subpasta,BookCovers
) ~/App_Code/BasePage.cs
~/Fiction/Default.aspx
~/Fiction/Default.aspx.cs
~/Fiction/Blaze.aspx
~/Fiction/Blaze.aspx.cs
~/Tech/Default.aspx
~/Tech/Default.aspx.cs
~/Tech/CYOW.aspx
~/Tech/CYOW.aspx.cs
~/Tech/TYASP35.aspx
~/Tech/TYASP35.aspx.cs
A Figura 3 mostra FileZilla depois de copiar os arquivos necessários. Como você pode ver, os ASP.NET arquivos de código-fonte, como About.aspx.cs
, estão presentes no computador local (o ambiente de desenvolvimento) e no provedor de host web (o ambiente de produção) porque os arquivos de código precisam ser implantados ao usar a compilação automática.
Figura 3: usar um cliente FTP para copiar os arquivos necessários da área de trabalho para o servidor Web no provedor de host da Web (clique para exibir a imagem em tamanho real)
A experiência do usuário não é afetada pelo modelo de compilação do aplicativo. As mesmas páginas ASP.NET são acessíveis e elas parecem e se comportam da mesma forma se o site foi criado usando o modelo do Projeto de Aplicativo Web ou o modelo do Projeto de Site.
Atualizando um aplicativo Web em produção
O desenvolvimento e a implantação de aplicativos Web não são um processo único. Por exemplo, ao criar o site revisão de livros, criei as várias páginas e escrevi o código que o acompanhava no meu computador pessoal (o ambiente de desenvolvimento). Depois de atingir um determinado estado estável, implantei meu aplicativo para que outras pessoas pudessem visitar o site e ler minhas revisões. Mas a implantação não marca o fim do meu desenvolvimento neste site. Posso adicionar mais revisões de livros ou implementar novos recursos, como permitir que meus visitantes classifiquem livros ou deixem seus próprios comentários. Esses aprimoramentos seriam desenvolvidos no ambiente de desenvolvimento e, quando concluídos, precisariam ser implantados. O desenvolvimento e a implantação, portanto, são cíclicos. Você desenvolve um aplicativo e o implanta. Embora o site esteja ativo e em produção, novos recursos são adicionados e os bugs são corrigidos ao longo do tempo, o que requer a implantação nova do aplicativo. E assim por diante e assim por diante.
Como era de se esperar, ao implantar novamente um aplicativo Web, você só precisa copiar arquivos novos e alterados. Não é necessário implantar novamente páginas inalteradas ou arquivos de suporte do servidor ou do lado do cliente (embora não haja nenhum dano em fazê-lo).
Observação
Uma coisa a ter em mente ao usar a compilação explícita é que sempre que você adiciona uma nova página ASP.NET ao projeto ou faz alterações relacionadas ao código, você precisa recompilar o projeto, que atualiza o assembly na Bin
pasta. Consequentemente, você precisará copiar esse assembly atualizado para produção ao atualizar um aplicativo Web em produção (juntamente com o outro conteúdo novo e atualizado).
Entenda também que todas as Web.config
alterações nos arquivos ou no Bin
diretório param e reiniciam o Pool de Aplicativos do site. Se o estado da sessão for armazenado usando o InProc
modo (o padrão), os visitantes do site perderão o estado de sessão sempre que esses arquivos de chave forem modificados. Para evitar essa armadilha, considere armazenar a sessão usando os StateServer
modos ou SQLServer
. Para obter mais informações sobre este tópico, leia Modos de Estado de Sessão.
Por fim, tenha em mente que a re-implantação de um aplicativo pode levar de alguns segundos a vários minutos, dependendo do número e do tamanho dos arquivos que precisam ser copiados para o ambiente de produção. Durante esse tempo, os usuários que visitam seu site podem sofrer erros ou comportamentos ímpares. Você pode "desativar" todo o aplicativo adicionando uma página chamada App_Offline.htm
ao diretório raiz do aplicativo que explica aos usuários que o site está inativo para manutenção (ou qualquer outra coisa) e fará backup em breve. Quando o App_Offline.htm
arquivo está presente, o runtime do ASP.NET redireciona todas as solicitações de entrada para essa página.
Resumo
A implantação de um aplicativo Web envolve a cópia dos arquivos necessários do ambiente de desenvolvimento para o ambiente de produção. O meio mais comum pelo qual os arquivos são transferidos por uma rede é o FTP (Protocolo de Transferência de Arquivo) e a maioria dos provedores de host da Web dá suporte ao acesso FTP aos seus servidores Web. Neste tutorial, vimos como usar um cliente FTP para implantar os arquivos necessários no servidor Web. Depois de implantado, o site pode ser visitado por qualquer pessoa com uma conexão com a Internet!
Programação feliz!
Leitura Adicional
Para obter mais informações sobre os tópicos discutidos neste tutorial, consulte os seguintes recursos: