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
- criar um aplicativo Web da Web que tem uma referência da Web para um serviço Web.Uma referência da Web para qualquer serviço Web válido será suficiente para esta explicação passo a passo.Por exemplo, você pode usar aplicativo Web Web descrito em Demonstra Passo a passo: Acessando um serviço da Web usando Visual Basic ou Visual C#.
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
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.
No Adicionar novo projeto caixa de diálogo, no Visual Basic nó, selecionar biblioteca de classes.
Nomeie o projeto InstallerClassLibrary.
Para adicionar e implementar uma classe Installer
clicar com o botão direito do mouse o InstallerClassLibrary nó de projeto O gerenciador de soluções e clique em Adicionar, then Classe.
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.
clicar duas vezes o designer para em em aberto o Editor de código.
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.
In O gerenciador de soluções, clicar duas vezes no arquivo Web.config para em aberto-lo.
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.
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
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.
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.
No Propriedades janela, selecionar o Propriedade ProductName e defina-o ao nome do seu aplicativo Web Web.
No Editor de arquivo do sistema, selecionar o Pasta de aplicativo Web Web.
Sobre o Ação , aponte para Adicionar, em seguida, clicar Saída do projeto.
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
In O gerenciador de soluções, selecionar o WebAppSetupprojeto .
Sobre o Modo de exibição menu, clicar Editor, then Ações personalizadas.
The Editor de ações personalizadas é aberta.
No Editor de ações personalizadas, selecionar o Instalar nó.
Sobre o Ação menu, escolher Adicionar ação personalizada.
clicar duas vezes o Pasta de aplicativo Web Webe, em seguida, selecionar Saída primária do InstallerClassLibrary (ativo).
No Propriedades janela, certifique-se de que o InstallerClass propriedade é conjunto para True.
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.
Adicionando uma caixa de diálogo
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
In O gerenciador de soluções, selecionar o projeto de instalação.
Sobre o Modo de exibição , aponte para Editore, em seguida, clicar Interface do usuário.
No Editor de interface do usuário, selecionar o Iniciar nó Instalar.
Sobre o Ação menu, escolher Caixa de diálogo Adicionar.
No Caixa de diálogo Adicionar diálogo caixa, escolher o Caixas de texto (A) diálogo e clicar OK.
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.
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
In O gerenciador de soluções, selecionar o projeto de instalação.
Sobre o Projeto menu, clicar Instalar.
Para implantar o aplicativo em um servidor Web em outro computador
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.
Copie o arquivo .msi e todos os outros arquivos e subdiretórios no diretório para o computador do servidor Web.
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