Compartilhar via


Demonstra Passo a passo: Redirecionando um aplicativo para destino de um serviço Web diferente na instalação

Esta explicação passo a passo demonstra como criar um aplicativo Web Web que pode ser redirecionado para um serviço Web diferente de destino usando o Comportamento da URL propriedade, uma classe Installer e um projeto Web Setup.Isso é útil quando você precisa direcionar um serviço Web localmente durante o desenvolvimento e desejar usar uma versão de produção do serviço Web quando seu aplicativo for implantado.

Observação:

As caixas de diálogo e comandos de menu que você vê podem diferir das descritas na Ajuda dependendo das suas configurações ativas ou edição.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio.

Criando o projeto de aplicação Web

A primeira etapa é criar um ASP.NET Projeto de aplicativo Web Web que contém uma referência da Web para um serviço Web.

Para criar o projeto

Adicionando uma classe de instalador

Instalador de classes, também conhecido sistema autônomo componentes de instalação, são .NET Framework classes chamados sistema autônomo ações personalizadas durante a instalação. Nesse caso, você irá adicionar um projeto de biblioteca de classes para a solução.Esse projeto de biblioteca de classes, você criará uma classe de instalador e substituir seu Install método, adicionando código para modificar o arquivo de .config do aplicativo Web Web. Para obter mais informações no instalador de classes, consulte Introdução aos componentes de instalação.

Para criar o projeto de biblioteca de classes

  1. clicar com o botão direito do mouse no nó da solução em O gerenciador de soluções e clique em Adicionar, then Novo projeto.

  2. No Adicionar novo projeto caixa de diálogo, no Visual Basic nó, selecionar biblioteca de classes.

  3. Nomeie o projeto InstallerClassLibrary.

Para adicionar e implementar uma classe Installer

  1. clicar com o botão direito do mouse o InstallerClassLibrary nó de projeto O gerenciador de soluções e clique em Adicionar, then Classe.

  2. No Adicionar novo item caixa de diálogo de de seleçãoClasse de instalador e altere o Nome to WebServiceInstaller.vb.

    Quando você clicar Adicionar, a classe será adicionada para o projeto e o designer da classe de instalador será em aberto.

  3. clicar duas vezes o designer para em em aberto o Editor de código.

  4. Em WebServiceInstaller.vb, adicione o seguinte código na parte inferior do módulo de classe Installer (logo acima da declaração participante Class); esse código implementa o Install método:

    Public Overrides Sub Install(ByVal stateSaver As _
      System.Collections.IDictionary)
    
       ' Gets the parameter passed across in the CustomActionData.
       Dim installlog As New System.IO.StreamWriter("Installation.log")
       installlog.AutoFlush = True
       Try
         Dim ProvidedName As String = Me.Context.Parameters.Item("ServerName")
         Dim SvcName As String = Me.Context.Parameters.Item("ServiceName")
    
          installlog.WriteLine("Starting Edit of the config file")
    
          If ProvidedName = "" Or SvcName = "" Then
             Throw New InstallException("No arguments specified")
          End If
    
          ' Uses reflection to find the location of the config file.
          Dim Asm As System.Reflection.Assembly = _
            System.Reflection.Assembly.GetExecutingAssembly
          Dim strConfigLoc As String
          strConfigLoc = Asm.Location
    
          Dim strTemp As String
          strTemp = strConfigLoc
          strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - _
            strTemp.LastIndexOf("\"))
          strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - _
            strTemp.LastIndexOf("\"))
    
          Dim FileInfo As System.IO.FileInfo = New System.IO.FileInfo( _
            strTemp & "\web.config")
    
          installlog.WriteLine("File info: " & strTemp)
    
          If Not FileInfo.Exists Then
             Throw New InstallException("Missing config file")
          End If
    
          ' Loads the config file into the XML DOM.
          Dim XmlDocument As New System.Xml.XmlDocument()
          XmlDocument.Load(FileInfo.FullName)
    
          ' Finds the right node and change it to the new value.
          Dim Node As System.Xml.XmlNode
          Dim FoundIt As Boolean = False
          For Each Node In _
             XmlDocument.Item("configuration").Item("appSettings")
             ' Skips any comments.
             If Node.Name = "add" Then
                If Node.Attributes.GetNamedItem("key").Value = _
                   "servername.service" Then
                   ' Note that "Service1.asmx" should be replaced with the
                   ' actual name of the XML Web service file.
                   Node.Attributes.GetNamedItem("value").Value = "http://" _
                     & ProvidedName & "/" & SvcName & "/Service1.asmx"
                   FoundIt = True
                End If
             End If
          Next Node
    
          If Not FoundIt Then
             Throw New InstallException("Config file did not contain a ServerName section")
          End If
    
          ' Writes out the new config file.
          XmlDocument.Save(FileInfo.FullName)
    
       Finally
          installlog.WriteLine("Ending edit of config file")
          installlog.Close()
       End Try
    
    End Sub
    

    Primeiro, o código acima cria um arquivo de log de instalação irá registrar o progresso da ação personalizada.The System.Reflection espaço para nome é usado para localizar o assembly que está sendo instalado e para localizar a associada. arquivo de configuração. O modelo de documento XML é usado para iterar por meio de. arquivo de configuração até o appSettings seção é encontrada. Quando a chave servername.service é encontrado, seu valor associado é mudado para incluir os parâmetros foram passados, redirecionando o aplicativo para usar o novo serviço Web.

  5. In O gerenciador de soluções, clicar duas vezes no arquivo Web.config para em aberto-lo.

  6. Copie o valor da chave para serviço Web no appSettings seção. A chave leva o formulário servername.service onde nome do servidor é o servidor onde serviço Web está localizado e serviço é o nome do serviço Web.

  7. Abra o módulo de classe de instalador no Editor de código e substitua o texto "servername.serviço" com o valor que você copiou na etapa anterior.

Adicionando um projeto de instalação da Web

Projetos de instalação são usados para criar um instalador para o seu aplicativo.Projetos de instalação com base na tecnologia Windows Installer, incluem recursos sistema autônomo a capacidade para executar ações personalizadas durante a instalação e personalizar a instalação da interface do usuário.Para obter mais informações sobre projetos de instalação, consulte Implantando Aplicativos e Componentes.

Para adicionar um projeto Web Setup

  1. clicar com o botão direito do mouse no nó da solução em O gerenciador de soluções e clique em Adicionar, then Novo projeto.

  2. No Adicionar novo projeto caixa de diálogo, no Tipos de projeto painel, expandir o Outros tipos de projeto nó e, em seguida, selecionar o O programa de instalação e projetos de implantação nó.

    No Modelos painel, selecionar Web Setup projeto.No Nome caixa, nomeie o projeto WebAppSetup.

    Quando você clica em OK, o projeto será adicionado à solução e o sistema de arquivos Editor será aberto.

  3. No Propriedades janela, selecionar o Propriedade ProductName e defina-o ao nome do seu aplicativo Web Web.

  4. No Editor de arquivo do sistema, selecionar o Pasta de aplicativo Web Web.

  5. Sobre o Ação , aponte para Adicionar, em seguida, clicar Saída do projeto.

  6. No Adicionar Project Output agrupar caixa de diálogo de de seleçãoInstallerClassLibrary from the Projeto na lista suspensa; em seguida, selecionar Saída principal.

    Quando você clica em OK, a saída primária do InstallerClassLibrary será adicionado ao projeto Web Setup.

Adicionando uma ação personalizada

Ações personalizadas são usadas para executar código no participante de uma instalação para realizar ações não podem ser manipuladas durante a instalação.O código de uma ação personalizada pode estar contido em uma .dll, .exe, script ou arquivo de montagem.Para obter mais informações sobre ações personalizadas, consulte Gerenciamento de ações personalizadas no implantação.

Para adicionar a classe Installer sistema autônomo uma ação personalizada

  1. In O gerenciador de soluções, selecionar o WebAppSetupprojeto .

  2. Sobre o Modo de exibição menu, clicar Editor, then Ações personalizadas.

    The Editor de ações personalizadas é aberta.

  3. No Editor de ações personalizadas, selecionar o Instalar nó.

  4. Sobre o Ação menu, escolher Adicionar ação personalizada.

  5. clicar duas vezes o Pasta de aplicativo Web Webe, em seguida, selecionar Saída primária do InstallerClassLibrary (ativo).

  6. No Propriedades janela, certifique-se de que o InstallerClass propriedade é conjunto para True.

  7. selecionar o CustomActionData propriedade e insira o seguinte texto: / ServerName = /ServiceName [EDITA1] = [EDITA2]

    The CustomActionDatapropriedade fornece os dois parâmetros que são passados para a ação personalizada, separada por um espaço.

Caixas de diálogo de interface do usuário são exibidas durante a instalação para coletar informações do usuário.Para obter mais informações sobre caixas de diálogo da interface do usuário, consulte Gerenciamento de interface do usuário na implantação.

Para adicionar uma caixa de diálogo de interface de usuário personalizado

  1. In O gerenciador de soluções, selecionar o projeto de instalação.

  2. Sobre o Modo de exibição , aponte para Editore, em seguida, clicar Interface do usuário.

  3. No Editor de interface do usuário, selecionar o IniciarInstalar.

  4. Sobre o Ação menu, escolher Caixa de diálogo Adicionar.

  5. No Caixa de diálogo Adicionar diálogo caixa, escolher o Caixas de texto (A) diálogo e clicar OK.

  6. Sobre o Ação menu, escolher Mover para cimae Repetir até que o Caixas de texto (A) diálogo está localizado acima de Endereço de instalação da caixa de diálogo.

  7. Na janela Properties, defina as propriedades a seguir:

    Propriedade

    Valor

    BannerText

    Digite o nome do servidor e o nome de serviço

    Edit1Label

    Nome do servidor:

    Edit1Value

    Localhost

    Observação:
    Especifica um servidor padrão.Você pode inserir seu próprio nome do servidor padrão aqui.

    Edit2Label

    Nome do serviço:

    Edit2Value

    <nome do serviço >

    Edit3Visible

    False

    Edit4Visible

    False

    Observe que o Edit1Property propriedade é conjunto para "EDITA1" e oEdit2Propertypropriedade é conjunto para "EDITA2".Elas correspondem com os valores que você inseriu no CustomActionDatapropriedade no Custom Actions Editor.Quando o usuário insere texto nesses controles de edição durante a instalação, automaticamente, os valores são passados por meio do CustomActionDatapropriedade .

Criando e implantando o aplicativo

A etapa final é compilação o projeto de instalação in order to criar o instalador e, em seguida, para instalar o aplicativo no servidor de destino.

Para criar o projeto de instalação

  • Sobre o Compilação menu, escolher Criar ProjectName, where ProjectName é o nome do seu projeto de instalação.

Para implantar o aplicativo em um servidor Web no seu computador de desenvolvimento

  1. In O gerenciador de soluções, selecionar o projeto de instalação.

  2. Sobre o Projeto menu, clicar Instalar.

Para implantar o aplicativo em um servidor Web em outro computador

  1. In Windows Explorer, navegar para o diretório de projeto e localize o instalador integrado.O caminho padrão será \documents and settings\ yourloginname\Meus Documentos\Visual studio Projects\setupprojectname\configuração de projeto\ProductName.msi.O padrão de configuração de projeto is Depurar.

  2. Copie o arquivo .msi e todos os outros arquivos e subdiretórios no diretório para o computador do servidor Web.

  3. No computador do servidor Web, clicar duas vezes no arquivo Setup.exe para executar o instalador.

Consulte também

Conceitos

Introdução aos componentes de instalação

Outros recursos

Implantando Aplicativos e Componentes

Gerenciamento de ações personalizadas no implantação

Gerenciamento de interface do usuário na implantação