Implantando um aplicativo Web ASP.NET com o SQL Server Compact usando o Visual Studio ou o Visual Web Developer: implantando no IIS como um ambiente de teste-5 de 12

por Tom Dykstra

Baixar o projeto inicial

Esta série de tutoriais mostra como implantar (publicar) um projeto de aplicativo Web ASP.NET que inclui um banco de dados SQL Server Compact usando o Visual Studio 2012 RC ou o Visual Studio Express 2012 RC para Web. Você também pode usar o Visual Studio 2010 se instalar a atualização de publicação na Web. Para obter uma introdução à série, consulte o primeiro tutorial da série.

Para ver um tutorial que mostra os recursos de implantação introduzidos após a versão RC do Visual Studio 2012, mostra como implantar SQL Server edições diferentes de SQL Server Compact e mostra como implantar o Azure App aplicativos Web do serviço, consulte implantação da Web do ASP.NET usando o Visual Studio.

Visão geral

Este tutorial mostra como implantar um aplicativo Web ASP.NET no IIS no computador local.

Ao desenvolver um aplicativo, você geralmente testa executando-o no Visual Studio. Por padrão, isso significa que você está usando o Visual Studio Development Server (também conhecido como Cassini). O Visual Studio Development Server facilita o teste durante o desenvolvimento no Visual Studio, mas não funciona exatamente como o IIS. Como resultado, é possível que um aplicativo seja executado corretamente quando você testá-lo no Visual Studio, mas falhar quando for implantado no IIS em um ambiente de hospedagem.

Você pode testar seu aplicativo de forma mais confiável das seguintes maneiras:

  1. Use IIS Express ou IIS completo em vez do Visual Studio Development Server quando você testar no Visual Studio durante o desenvolvimento. Esse método geralmente emula com mais precisão como seu site será executado no IIS. No entanto, esse método não testa seu processo de implantação ou valida que o resultado do processo de implantação será executado corretamente.
  2. Implante o aplicativo no IIS em seu computador de desenvolvimento usando o mesmo processo que você usará posteriormente para implantá-lo em seu ambiente de produção. Esse método valida o processo de implantação, além de validar que seu aplicativo será executado corretamente no IIS.
  3. Implante o aplicativo em um ambiente de teste que seja o mais próximo possível do seu ambiente de produção. Como o ambiente de produção para esses tutoriais é um provedor de Hospedagem de terceiros, o ambiente de teste ideal seria uma segunda conta com o provedor de hospedagem. Você usaria essa segunda conta apenas para teste, mas ela seria configurada da mesma forma que a conta de produção.

Este tutorial mostra as etapas para a opção 2. As diretrizes para a opção 3 são fornecidas no final do tutorial implantando no ambiente de produção e, no final deste tutorial, há links para recursos para a opção 1.

Lembrete: se você receber uma mensagem de erro ou algo não funcionar enquanto percorre o tutorial, certifique-se de verificar a página de solução de problemas.

Configurando o aplicativo para ser executado em confiança média

Antes de instalar o IIS e implantá-lo, você alterará uma configuração de arquivo Web. config para fazer com que o site seja executado mais como em um ambiente de hospedagem compartilhado típico.

Provedores de hospedagem normalmente executam seu site em confiança média, o que significa que há algumas coisas que ele não tem permissão para fazer. Por exemplo, o código do aplicativo não pode acessar o registro do Windows e não pode ler ou gravar arquivos que estão fora da hierarquia de pastas do seu aplicativo. Por padrão, o aplicativo é executado em confiança alta no computador local, o que significa que o aplicativo pode ser capaz de fazer coisas que falhariam ao implantá-lo na produção. Portanto, para fazer com que o ambiente de teste reflita com mais precisão o ambiente de produção, você configurará o aplicativo para ser executado em confiança média.

No arquivo Web. config do aplicativo, adicione um elemento Trust no elemento System. Web , conforme mostrado neste exemplo.

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium" />
    <!-- Settings -->
  </system.web>
</configuration>

O aplicativo agora será executado em confiança média no IIS, mesmo no computador local. Essa configuração permite que você acompanhe o mais cedo possível qualquer tentativa pelo código do aplicativo de fazer algo que falharia na produção.

Note

Se você estiver usando Migrações do Entity Framework Code First, verifique se você tem a versão 5,0 ou posterior instalada. No Entity Framework versão 4,3, as migrações exigem confiança total para atualizar o esquema de banco de dados.

Instalando o IIS e Implantação da Web

Para implantar no IIS em seu computador de desenvolvimento, você deve ter o IIS e o Implantação da Web instalados. Eles não são incluídos na configuração padrão do Windows 7. Se você já tiver instalado o IIS e o Implantação da Web, pule para a próxima seção.

Usar o Web Platform Installer é a maneira preferida de instalar o IIS e o implantação da Web, porque o Web Platform Installer instala uma configuração recomendada para o IIS e instala automaticamente os pré-requisitos para o iis e implantação da Web, se necessário.

Para executar o Web Platform Installer para instalar o IIS e Implantação da Web, use o link a seguir. Se você já tiver instalado o IIS, Implantação da Web ou qualquer um de seus componentes necessários, o Web Platform Installer instalará apenas o que está faltando.

Configurando o pool de aplicativos padrão para o .NET 4

Depois de instalar o IIS, execute o Gerenciador do IIS para certificar-se de que o .NET Framework versão 4 seja atribuído ao pool de aplicativos padrão.

No menu Iniciar do Windows, selecione executar, digite "inetmgr" e clique em OK. (Se o comando executar não estiver no menu Iniciar , você poderá pressionar a tecla Windows e R para abri-lo. Ou clique com o botão direito do mouse na barra de tarefas, clique em Propriedades, selecione a guia menu iniciar , clique em Personalizare selecione executar comando.)

No painel conexões , expanda o nó do servidor e selecione pools de aplicativos. No painel pools de aplicativos , se DefaultAppPool for atribuído ao .NET Framework versão 4, como na ilustração a seguir, pule para a próxima seção.

Inetmgr_showing_4.0_app_pools

Se você vir apenas dois pools de aplicativos e ambos estiverem definidos como o .NET Framework 2,0, você precisará instalar o ASP.NET 4 no IIS:

  • Abra uma janela de prompt de comando clicando com o botão direito do mouse em prompt de comando no menu Iniciar do Windows e selecionando Executar como administrador. Em seguida, execute aspnet_regiis. exe para instalar o ASP.NET 4 no IIS, usando os comandos a seguir. (Em sistemas de 64 bits, substitua "Framework" por "Framework64".)

    cd %windir%\Microsoft.NET\Framework\v4.0.30319
    aspnet_regiis.exe –iru
    

    aspnet_regiis_installing_ASP. NET_4

    Este comando cria novos pools de aplicativos para o .NET Framework 4, mas o pool de aplicativos padrão ainda será definido como 2,0. Você implantará um aplicativo direcionado ao .NET 4 para esse pool de aplicativos, portanto, você precisa alterar o pool de aplicativos para o .NET 4.

Se você fechou o Gerenciador do IIS, execute-o novamente, expanda o nó do servidor e clique em pools de aplicativos para exibir o painel pools de aplicativos novamente.

No painel pools de aplicativos , clique em DefaultAppPoole, no painel ações , clique em configurações básicas.

Inetmgr_selecting_Basic_Settings_for_app_pool

Na caixa de diálogo Editar pool de aplicativos , altere .NET Framework versão para .NET Framework v 4.0.30319 e clique em OK.

Selecting_. NET_4_for_DefaultAppPool

Agora você está pronto para publicar no IIS.

Publicando no IIS

Há várias maneiras que você pode implantar usando o Visual Studio 2010 e Implantação da Web:

  • Use a publicação de um clique do Visual Studio.
  • Crie um pacote de implantação e instale-o usando a interface do usuário do Gerenciador do IIS. O pacote de implantação consiste em um arquivo . zip que contém todos os arquivos e metadados necessários para instalar um site no IIS.
  • Crie um pacote de implantação e instale-o usando a linha de comando.

O processo que você passou nos tutoriais anteriores para configurar o Visual Studio para automatizar tarefas de implantação se aplica a todos esses três métodos. Nesses tutoriais, você usará o primeiro desses métodos. Para obter informações sobre como usar pacotes de implantação, consulte mapa de conteúdo de implantação do ASP.net.

Antes de publicar, verifique se você está executando o Visual Studio no modo de administrador. (No menu Iniciar do Windows 7, clique com o botão direito do mouse no ícone da versão do Visual Studio que você está usando e selecione Executar como administrador.) O modo de administrador é necessário para publicar somente quando você está publicando no IIS no computador local.

Em Gerenciador de soluções, clique com o botão direito do mouse no projeto ContosoUniversity (não no projeto CONTOSOUNIVERSITY. Dal) e selecione publicar.

O assistente Publicar Web é exibido.

Publish_Web_wizard_Profile_tab

Na lista suspensa, selecione <novo...> .

Na caixa de diálogo novo perfil , digite "teste" e clique em OK.

New_Profile_dialog_box

Esse nome é o mesmo que o nó do meio do arquivo de transformação Web. Test. config criado anteriormente. Essa correspondência é o que faz com que as transformações Web. Test. config sejam aplicadas quando você publica usando esse perfil.

O assistente avança automaticamente para a guia conexão .

Na caixa URL do serviço , digite localhost.

Na caixa site/aplicativo , digite Default Web site/ContosoUniversity.

Na caixa URL de destino , digite http://localhost/ContosoUniversity.

A configuração da URL de destino não é necessária. Quando o Visual Studio termina de implantar o aplicativo, ele abre automaticamente o navegador padrão para essa URL. Se você não quiser que o navegador abra automaticamente após a implantação, deixe essa caixa em branco.

Publish_Web_wizard_Connection_tab_Test

Clique em validar conexão para verificar se as configurações estão corretas e se você pode se conectar ao IIS no computador local.

Uma marca de seleção verde verifica se a conexão foi bem-sucedida.

Publish_Web_wizard_Connection_tab_validated

Clique em Avançar para ir para a guia configurações .

A caixa suspensa configuração especifica a configuração de compilação a ser implantada. O valor padrão é versão, que é o que você deseja.

Deixe a caixa de seleção remover arquivos adicionais no destino desmarcada. Como essa é sua primeira implantação, ainda não haverá nenhum arquivo na pasta de destino.

Na seção bancos de dados , insira o seguinte valor na caixa Cadeia de conexão para SchoolContext:

Data Source=|DataDirectory|School-Prod.sdf

O processo de implantação colocará essa cadeia de conexão no arquivo Web. config implantado , porque Use esta cadeia de conexão em tempo de execução está selecionado.

Também em SchoolContext, selecione aplicar migrações do Code First. Essa opção faz com que o processo de implantação configure o arquivo Web. config implantado para especificar o inicializador de MigrateDatabaseToLatestVersion. Esse inicializador atualiza automaticamente o banco de dados para a versão mais recente quando o aplicativo acessa o banco de dados pela primeira vez após a implantação.

Na caixa Cadeia de conexão para DefaultConnection, insira o seguinte valor:

Data Source=|DataDirectory|aspnet-Prod.sdf

Deixe o banco de dados de atualização limpo. O banco de dados de associação será implantado copiando o arquivo. sdf no aplicativo_data, e você não quer que o processo de implantação faça mais nada com esse banco.

Publish_Web_wizard_Settings_tab_Test

Clique em Avançar para ir para a guia Visualizar .

Na guia Visualização , clique em Iniciar visualização para ver uma lista dos arquivos que serão copiados.

Publish_Web_wizard_Preview_tab_Test

Publish_Web_wizard_Preview_tab_Test_with_file_list

Clique em Publicar.

Se o Visual Studio não estiver no modo de administrador, você poderá receber uma mensagem de erro que indica um erro de permissões. Nesse caso, feche o Visual Studio, abra-o no modo de administrador e tente publicar novamente.

Se o Visual Studio estiver no modo de administrador, a janela de saída relatará compilação e publicação com êxito.

Output_window_publish_Test

O navegador é aberto automaticamente na home page da Contoso University em execução no IIS no computador local.

Home_page_Test

Teste no ambiente de teste

Observe que o indicador de ambiente mostra "(teste)" em vez de "(dev)", que mostra que a transformação Web. config do indicador de ambiente foi bem-sucedida.

Home_page_Test

Execute a página alunos para verificar se o banco de dados implantado não tem nenhum aluno. Quando você seleciona essa página, pode levar alguns minutos para carregar porque Code First cria o banco de dados e, em seguida, executa o método Seed. (Ele não fazia isso quando você estava na home page porque o aplicativo não tentou acessar o banco de dados ainda.)

Students_page_Test

Execute a página de instrutores para verificar se Code First propagam o banco de dados com o instrutor:

Instructors_page_Test

Selecione adicionar alunos no menu alunos , adicione um aluno e, em seguida, exiba o novo aluno na página alunos para verificar se você pode gravar com êxito no banco de dados:

Add_Students_page_Test

Students_page_with_new_student_Test

No menu cursos , selecione Atualizar créditos. A página créditos de atualização requer permissões de administrador, portanto, a página de logon é exibida. Insira as credenciais de conta de administrador que você criou anteriormente ("admin" e "Pas $ w0rd"). A página créditos de atualização é exibida, que verifica se a conta de administrador que você criou no tutorial anterior foi implantada corretamente no ambiente de teste.

Log_In_page_Test

Update_Credits_page_Test

Verifique se existe uma pasta do ELMAH com apenas o arquivo de espaço reservado nela.

Elmah_folder_Test

Revisando as alterações automáticas de Web. config para Migrações do Code First

Abra o arquivo Web. config no aplicativo implantado em C:\inetpub\wwwroot\ContosoUniversity e você pode ver onde o processo de implantação foi configurado migrações do Code First para atualizar automaticamente o banco de dados para a versão mais recente.

O processo de implantação também criou uma nova cadeia de conexão para Migrações do Code First usar exclusivamente para atualizar o esquema de banco de dados:

DatabasePublish_connection_string

Essa cadeia de conexão adicional permite que você especifique uma conta de usuário para atualizações de esquema de banco de dados e uma conta de usuário diferente para o acesso a aplicativos de aplicativo. Por exemplo, você pode atribuir o banco de_função de proprietário para Migrações do Code First e DB_as funções DataReader e DB_DataWriter para o aplicativo. Esse é um padrão comum de defesa aprofundada que impede que códigos potencialmente mal-intencionados no aplicativo alterem o esquema de banco de dados. (Por exemplo, isso pode acontecer em um ataque de injeção de SQL bem-sucedido.) Esse padrão não é usado por esses tutoriais. Ele não se aplica a SQL Server Compact e não se aplica ao migrar para SQL Server em um tutorial posterior nesta série. O site do Cytanium oferece apenas uma conta de usuário para acessar o banco de dados SQL Server que você cria em Cytanium. Se você for capaz de implementar esse padrão em seu cenário, poderá fazer isso executando as seguintes etapas:

  1. Na guia configurações do assistente publicar Web , insira a cadeia de conexão que especifica um usuário com permissões completas de atualização do esquema de banco de dados e desmarque a caixa de seleção usar esta cadeia de conexão em tempo de execução . No arquivo Web. config implantado, isso se torna a cadeia de conexão DatabasePublish.
  2. Crie uma transformação de arquivo Web. config para a cadeia de conexão que você deseja que o aplicativo use em tempo de execução.

Agora você implantou seu aplicativo no IIS em seu computador de desenvolvimento e o testou lá. Isso verifica se o processo de implantação copiou o conteúdo do aplicativo para o local correto (excluindo os arquivos que você não deseja implantar) e também que Implantação da Web configurado corretamente o IIS durante a implantação. No próximo tutorial, você executará mais um teste que encontra uma tarefa de implantação que ainda não foi feita: definindo permissões de pasta na pasta ELMAH .

Mais informações

Para obter informações sobre como executar o IIS ou IIS Express no Visual Studio, consulte os seguintes recursos:

Para obter informações sobre quais problemas podem surgir quando seu aplicativo é executado em confiança média, consulte hospedando aplicativos ASP.net em confiança média no site 4 da equipe de distribuição.