Walkthrough: Redirecionar um aplicativo para um serviço da Web diferente na instalação de destino.
Esta explicação passo a passo demonstra como criar um aplicativo Web que pode ser redirecionado para um serviço diferente da Web de destino usando o O comportamento de URL de propriedade, uma classe de instalador e um Web Setup project. Isso é útil quando você precisa de um serviço da Web de destino localmente durante o desenvolvimento e desejar usar uma versão de produção do serviço da Web, quando seu aplicativo é implantado.
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio. |
Criando o projeto de aplicativo da Web
A primeira etapa é criar um ASP.NET o projeto de aplicação Web que contém uma referência da Web para um serviço da Web.
Para criar o projeto
- Crie um aplicativo Web que tem uma referência da Web para um serviço da Web. Uma referência da Web para qualquer serviço da Web válido será suficiente para esta explicação passo a passo.
Adicionando uma classe de instalador
Classes de instalador, também conhecido como componentes de instalação, é .NET Framework classes chamado como ações personalizadas durante a instalação. Nesse caso, você irá adicionar um projeto de biblioteca de classe para a solução. Esse projeto de biblioteca de classe, você criar uma classe de instalador e substituir seu Install método, adicionando código para modificar o arquivo. config. do aplicativo da Web
Para criar o projeto de biblioteca de classe
Clique com o botão direito no nó da solução em Solution Explorer e clique em Add, em seguida, Novo projeto.
No Add New Project na caixa de Visual Basic nó, selecione Biblioteca de classe.
Nomeie o projeto InstallerClassLibrary.
Para adicionar e implementar uma classe de instalador
Com o botão direito do InstallerClassLibrary no nó do projeto Solution Explorer e clique em Add, em seguida, classe.
No Add New Item caixa de diálogo, selecione A classe de instalador e altere o nome para WebServiceInstaller.vb.
Quando você clica em Add, a classe será adicionada ao projeto e o designer da classe de instalador será aberto.
Clique duas vezes o designer para abrir o Editor de código.
No WebServiceInstaller.vb, adicione o seguinte código na parte inferior do módulo de classe de instalador (logo acima da declaração End 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 install_log As New System.IO.StreamWriter("Installation.log") install_log.AutoFlush = True Try Dim providedName = Me.Context.Parameters.Item("ServerName") Dim svcName = Me.Context.Parameters.Item("ServiceName") install_log.WriteLine("Starting Edit of the config file") If providedName = "" OrElse svcName = "" Then Throw New InstallException("No arguments specified") End If ' Uses reflection to find the location of the config file. Dim strConfigLoc = System.Reflection.Assembly.GetExecutingAssembly().Location Dim strTemp = strConfigLoc strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - strTemp.LastIndexOf("\")) strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - strTemp.LastIndexOf("\")) Dim fInfo As New System.IO.FileInfo(strTemp & "\web.config") install_log.WriteLine("File info: " & strTemp) If Not fInfo.Exists Then Throw New InstallException("Missing config file") End If ' Loads the config file into the XML DOM. ' Loads the config file into the XML DOM. Dim xmlDoc = XDocument.Load(fInfo.FullName) ' Finds the right node and change it to the new value. Dim foundIt As Boolean = False For Each node In xmlDoc.<configuration>.<appSettings>.<add> If node.@key = "servername.service" Then ' Note that "Service1.asmx" should be replaced with the ' actual name of the XML Web service file. node.@value = "http://" & providedName & "/" & svcName & "/Service1.asmx" foundIt = True 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. xmlDoc.Save(fInfo.FullName) Finally install_log.WriteLine("Ending edit of config file") install_log.Close() End Try End Sub
Primeiro, o código acima cria um arquivo de log de instalação irá registrar o andamento da ação personalizada. O System.Reflection espaço para nome é usado para localizar o assembly que está sendo instalado e para localizar o arquivo. config de associados. O modelo de documento XML é usado para iterar por meio do arquivo. config até o appSettings seção for encontrada. Quando a chave servername.service for encontrado, seu valor associado é alterado para incluir os parâmetros que foram passados, redirecionando o aplicativo para usar o novo serviço da Web.
Em Solution Explorer, duas vezes no arquivo Web. config para abri-lo.
Copiar o valor da chave para o seu serviço da Web no appSettings seção. A chave assume a forma servername.service onde servername é o servidor onde o serviço da Web está localizado, e service é o nome do serviço da Web.
Abra o módulo de classe de instalador no Editor de código e substitua o texto "servername.service" com o valor que você copiou na etapa anterior.
Adicionar um Web Setup Project.
Projetos de instalação são usados para criar um instalador para o seu aplicativo. Baseado na tecnologia do Windows Installer, os projetos de instalação incluem recursos como, por exemplo, a capacidade de executar ações personalizadas durante a instalação e personalizar a interface do usuário de instalação. Para obter mais informações sobre projetos de instalação, consulte Implantando Aplicativos e Componentes.
Para adicionar um Web Setup project
Clique com o botão direito no nó da solução em Solution Explorer e clique em Add, em seguida, Novo projeto.
No Add New Project na caixa o Tipos de projeto painel, expanda o Other Project Types nó, em seguida, selecione o Setup and Deployment Projects nó.
No modelos de painel, selecione Web Setup Project. No nome caixa, nomeie o projeto WebAppSetup.
Quando você clica em OK, o projeto será adicionado à solução e o File System Editor será aberto.
No Propriedades janela, selecione o Propriedade ProductName e defini-lo para o nome do seu aplicativo da Web.
No File System Editor, selecione o Web Application Folder.
Sobre o ação , aponte para Adicionar, em seguida, clique em Saída do projeto.
No Add Project Output Group caixa de diálogo, selecione InstallerClassLibrary da projeto na lista suspensa; em seguida, selecione Saída principal.
Quando você clica em OK, a saída primária da InstallerClassLibrary será adicionada ao projeto de instalação da Web.
Adicionando uma ação personalizada
Ações personalizadas são usadas para executar o código no final 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 assembly. Para obter mais informações sobre ações personalizadas, consulte Personalizar Gerenciamento de ações na implantação.
Para adicionar a classe de instalador como uma ação personalizada
Em Solution Explorer, selecione o WebAppSetup project.
No Exibir menu, clique em Editor, em seguida, Custom Actions.
O Custom Actions Editor abre.
No Custom Actions Editor, selecione o instalar nó.
Sobre o ação menu, escolha Add Custom Action.
Clique duas vezes o Web Application Folder, em seguida, selecione saída primária do InstallerClassLibrary (ativo).
No Propriedades janela, certifique-se de que o InstallerClass for definida como True.
Selecione o CustomActionData propriedade e insira o seguinte texto: / Nome_do_servidor = [EDITA1] /ServiceName = [EDITA2
O CustomActionData propriedade 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 diálogos de interface de usuário, consulte Gerenciamento de Interface de usuário na implantação.
Para adicionar uma caixa de diálogo da interface de usuário personalizada
Em Solution Explorer, selecione o projeto de instalação.
Sobre o Exibir , aponte para Editore, em seguida, clique em Interface do usuário.
No User Interface Editor, selecione o Iniciar nó em instalar.
Sobre o ação menu, escolha Caixa de diálogo Adicionar.
No Caixa de diálogo Adicionar caixa de diálogo caixa, escolha o Caixas de texto (A) caixa de diálogo e clique em OK.
No ação menu, escolha Mover para cimae repita até que o Caixas de texto (A) diálogo está localizado acima o Endereço de instalação caixa de diálogo.
Na janela Properties, defina as propriedades a seguir:
Propriedade
Valor
BannerText
Digite o nome do servidor e o nome do serviço
Edit1Label
Nome do servidor:
Edit1Value
Localhost
ObservaçãoEspecifica um servidor padrão.Você pode inserir seu próprio nome de servidor padrão aqui.Edit2Label
Nome do serviço:
Edit2Value
< nome do serviço >
Edit3Visible
Falso
Edit4Visible
Falso
Observe que o Edit1Property for definida como "edita1" e o Edit2Property for definida como "edita2". Elas correspondem com os valores que você inseriu na CustomActionData a propriedade no Editor Custom Actions. Quando o usuário insere texto nesses controles de edição durante a instalação, automaticamente, os valores são passados por meio do CustomActionData propriedade.
Criando e implantando o aplicativo.
A etapa final é criar o projeto de instalação para criar o instalador, em seguida, para instalar o aplicativo no servidor de destino.
Para construir o projeto de instalação
- No Build menu, escolha Build projectname, onde Projectname é o nome do seu projeto de instalação.
Para implantar o aplicativo em um servidor Web no seu computador de desenvolvimento
Em Solution Explorer, selecione o seu projeto de instalação.
Sobre o projeto menu, clique em instalar.
Para implantar o aplicativo em um servidor Web em outro computador
Em Windows Explorer, navegue até o diretório de projeto e localizar o instalador integrado. O caminho padrão será \documents and Settings \yourloginnameDocumentos\Visual Studio Projects\setupprojectname\configuração de projeto\productname. msi. O padrão configuração de projeto é Debug.
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, clique duas vezes em Setup exe para executar o instalador.
Consulte também
Outros recursos
Implantando Aplicativos e Componentes