Sunteți pe pagina 1din 36

Windows PowerShell O Windows PowerShell um shell de linha de comando e linguagem de script, baseado em tarefas, criado especialmente para a administrao

o de sistemas. Criado em uma estrutura .NET, o Windows PowerShell ajuda os profissionais de TI e usurios de energia a controlar e automatizar a administrao do sistema operacional Windows e os aplicativos que so executados em Windows. Comandos incorporados do Windows PowerShell, chamados cmdlets, permitem que voc gerencie os computadores em sua empresa da linha de comando. Os providers de Windows PowerShell oferecem acesso fcil a repositrios de dados, como o registro e o repositrio de certificado, da mesma forma que voc acessa o sistema de arquivos. Alm disso, o Windows PowerShell tem um analisador gramatical completo e uma linguagem de script totalmente desenvolvida. O Windows PowerShell inclui os seguintes recursos:
y

Cmdlets para a execuo de tarefas comuns de administrao de sistema, como gerenciamento de registro, servios, processos e logs de eventos, usando a Instrumentao de Gerenciamento do Windows. Uma linguagem de script baseada em tarefas e suporte para scripts existentes e ferramentas de linha de comando. Design consistente. Como os cmdlets e os repositrios de dados do sistema usam sintaxes comuns e convenes de nomenclatura, os dados podem ser compartilhados facilmente e a sada de um cmdlet pode ser usada como a entrada para outro cmdlet, sem a necessidade de reformatao ou manipulao. Simplificada, a navegao baseada em comandos do sistema operacional permite aos usurios navegar pelo registro e outros repositrios de dados usando as mesmas tcnicas usadas para navegar pelo sistema de arquivos. Recursos de manipulao de objetos potentes. Objetos que podem ser diretamente manipulados ou enviados para outras ferramentas ou bancos de dados. Interface extensvel. Provedores de software independentes e desenvolvedores empresariais podem criar ferramentas padronizadas e utilitrios para administrar seus softwares.

Aprendendo sobre o Windows PowerShell Para aprender sobre o Windows PowerShell, inicie com os seguintes recursos, que esto includos na ferramenta:
y

Introduo. Uma breve introduo e tutorial. Para abrir, clique em Iniciar, Todos os Programas, Windows PowerShell 1.0 e clique em Introduo. Guia do Usurio. Uma introduo detalhada, incluindo scripts e cenrios reais, para voc comear.

Cmdlet Get-Help. Um cmdlet do Windows PowerShell que voc pode usar para aprender rapidamente sobre os cmdlets e providers em seu sistema. Para comear, inicie Windows PowerShell e, quando solicitado, digite:

get-help

Para aprender sobre a linguagem de script do Windows PowerShell e outros conceitos, leia os tpicos "about". Para consultar uma lista dos tpicos "about", digite:

get-help about

Lio 1: introduo aos cmdlets do Windows Server AppFabric para Windows PowerShell
Objetivo: Para preparar o ambiente do Windows PowerShell para usar cmdlets do Windows Server AppFabric para que Windows PowerShell configure, gerencie e monitore o aplicativo Servio de Pedidos. Finalidade: Nesta lio, voc ir carregar o Mdulo do ApplicationServer no Windows PowerShell e habilitar a execuo de scripts para o Windows PowerShell. Voc deve usar o mesmo console do Windows PowerShell para o restante das lies neste tutorial. Pr-requisitos Observe os seguintes requisitos antes de iniciar esta etapa:
y y

Voc deve ter o AppFabric j instalado. Voc deve ser capaz de executar o Windows PowerShell com uma conta administrativa.

Procedimento Voc concluir as seguintes etapas nesta lio: 1. Inicie uma sesso do Windows PowerShell com credenciais administrativas. 2. Habilite a execuo de scripts do Windows PowerShell. 3. Carregar o Mdulo do ApplicationServer no Windows PowerShell Iniciando uma sesso do Windows PowerShell com credenciais administrativas

1. Powershell.exe est localizado no diretrio C:\Windows\System32\WindowsPowerShell\v1.0. Abra esse diretrio no Windows Explorer ou use a ferramenta de pesquisa para localiz-lo clicando em Iniciar e inserindo powershell.exe na caixa de pesquisa. 2. Clique com o boto direito do mouse em powershell.exe e clique em Executar como administrador. 3. Na janela do Windows PowerShell em execuo para a sua sesso, clique com o boto direito do mouse na barra de ttulo e clique em propriedades. 4. Na janela de Propriedades do Windows PowerShell, verifique se Modo de Exibio Rpida est selecionado e clique em OK.

Habilitando execuo de scripts no Windows PowerShell As etapas na maior parte desse tutorial so orientadas usando uma sesso do Windows PowerShell. No entanto, voc pode usar os comandos em todas as lies para criar um script para automao. Em algumas lies, a execuo de scripts usada para simplificar a abordagem. Nesta seo, voc habilitar a execuo de um script local apenas nesta sesso do Windows PowerShell. 1. Execute o comando a seguir na janela do Windows PowerShell para permitir que scripts locais no assinados sejam executados no Windows PowerShell.
2. Set-ExecutionPolicy ExecutionPolicy RemoteSigned Scope Process 3. Quando for solicitado para confirmar a alterao de diretiva de execuo, digite Y e pressione ENTER.

4. Para ajudar a verificar se a execuo de scripts locais est habilitada agora, execute o comando a seguir no Windows PowerShell.
5. Get-ExecutionPolicy

O Windows PowerShell deve reportar a diretiva de execuo como RemoteSigned. O parmetro Scope Process garante que a diretiva esteja ativa somente para o processo atual do Windows PowerShell e qualquer processo filho que voc possa criar. Ao definir a diretiva de execuo do Windows PowerShell como RemoteSigned usando o comando acima, voc ter ativado a seguinte diretiva para sua sesso atual do Windows PowerShell:
y y

Os scripts podem ser executados. Requer uma assinatura digital de um editor confivel em scripts e arquivos de configurao que so baixados da Internet (incluindo programas de e-mail e mensagens instantneas).

No requer assinaturas digitais em scripts que voc executou e gravou no computador local (no baixados da Internet).

Para reverter essa mudana de diretiva, apenas feche a sesso atual do Windows PowerShell e qualquer processo filho que voc tenha iniciado com essa sesso. Observe que as lies neste tutorial exigiro que a diretiva de execuo modificado esteja habilitada para a sesso. Tenha em mente que a diretiva de execuo no impede que comandos especficos ou cmdlets sejam executados. Ela apenas define restries nas quais arquivos de script e configurao podem ser executados. Para obter mais informaes sobre as diretivas de execuo no Windows PowerShell 2.0, consulte about_execution_policies (a pgina pode estar em ingls) ou execute o comando a seguir.
Get-help about_execution_policies

Carregando o Mdulo do Windows PowerShell para o AppFabric 1. Execute o comando a seguir para usar o cmdlet Import-Module para que o Windows PowerShell carregue o Mdulo do ApplicationServer no Windows PowerShell.
2. Import-Module ApplicationServer

Sem erros indica que o mdulo foi carregado com xito.

3. Para verificar se o Mdulo do ApplicationServer no Windows PowerShell est carregado corretamente, execute o comando a seguir na janela do Windows PowerShell.
4. Get-Command Module ApplicationServer

Esse resultado do comando deve listar todos os comandos expostos pelo Mdulo do ApplicationServer no Windows PowerShell em um formato de tabela. O que acabei de fazer? Nesta lio, voc iniciou o Windows PowerShell com credenciais administrativas para permitir a execuo de scripts nas prximas lies. Voc tambm carregou o Mdulo do ApplicationServer no Windows PowerShell e verificou se os comandos estavam sendo expostos pelo mdulo. Voc usar esses comandos neste tutorial para configurar, gerenciar e monitorar o aplicativo Servio de Pedidos.

Lio 2: implantando o aplicativo Order Service com o Windows PowerShell


Objetivo: Aprender como implantar aplicativos que incluem WCF e/ou servios WF para IIS. Finalidade: Esta lio aborda um exemplo sobre como usar o Windows PowerShell para implantao de scripts com a ferramenta Web Deployment. Voc ir reimplantar o aplicativo Order Service em um site chamado OrderService_PS. Pr-requisitos Observe os pr-requisitos a seguir:
y

necessrio fazer download dos arquivos de tutorial em http://go.microsoft.com/fwlink/?LinkId=160309. Tambm necessrio extrair os arquivos de tutorial para o diretrio C:\, conforme documentado na Lio 1: introduo para o Tutorial usando a interface do Windows Server AppFabric. Voc deve concluir a Lio 1: introduo aos cmdlets do Windows Server AppFabric para Windows PowerShell.

Procedimento Siga as etapas a seguir como parte do processo de reimplantao do aplicativo Order Service: 1. Prepare os arquivos de configurao para a implantao 2. Crie os pacotes de implantao usando o MSBuild com o Windows PowerShell. 3. Crie o site OrderService_PS e o pool de aplicativos. 4. Implante cada servio da Web com a ferramenta Web Deployment e o Windows PowerShell. 5. Teste cada servio da Web com o Windows PowerShell. Preparando os arquivos de configurao para a implantao Voc usar o Windows PowerShell para reimplantar o aplicativo Order Service em um novo site usando a porta 95. Nesta seo, voc atualizar os endereos do ponto de extremidade nos arquivos de configurao com as novas informaes da porta antes da implantao. 1. Execute o seguinte comando no Windows PowerShell para abrir o arquivo app.config do Order Client.

2. notepad C:\DublinTutorial\OrderServiceSolution\Completed\Order Client\app.config

Substitua a seo do cliente pela seguinte seo de cliente.


<client> <endpoint address="http://localhost:95/OrderWorkflowService/Orde rWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Sampl es.Dublin.Tutorials.OrderService.OrderWorkflowService. IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinT utorialsOrderServiceOrderWorkflowServiceIOrderWorkflow Service" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutori als.OrderService.OrderWorkflowService.IOrderWorkflowSe rvice" /> </client>

Feche o bloco de notas e clique em Salvar quando o sistema solicitar que salve as alteraes.

3. Execute o seguinte comando do Windows PowerShell para abrir o arquivo Web.config do Order Processing Service.
4. notepad C:\DublinTutorial\OrderServiceSolution\Completed\Order ProcessingService\Web.config

Substitua a seo do cliente pela seguinte seo de cliente.


<client> <endpoint address="http://localhost:95/OrderWorkflowService/Orde rWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Sampl es.Dublin.Tutorials.OrderService.OrderWorkflowService. IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinT utorialsOrderServiceOrderWorkflowServiceIOr derWorkflow Service" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutori

als.OrderService.OrderWorkflowService.IOrderWorkflowSe rvice" /> </client>

Feche o bloco de notas e clique em Salvar quando o sistema solicitar que salve as alteraes.

5. Execute o seguinte comando do Windows PowerShell para abrir o arquivo Web.config do OrderWorkflowService.
6. notepad C:\DublinTutorial\OrderServiceSolution\Completed\Order WorkflowService\Web.config

Substitua a seo do cliente pela seguinte seo de cliente.


<client> <endpoint address="http://localhost:95/OrderProcessingService/Or derProcessing.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IOrderProcessin g" contract="IOrderProcessing" name="BasicHttpBinding_IOr derProcessing" /> <endpoint address="http://localhost:95/ShippingService/Shipping. svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IShipping" contract="IShipping" name="BasicHttpBinding_IShipping" /> </client>

Feche o bloco de notas e clique em Salvar quando o sistema solicitar que salve as alteraes.

7. Execute o seguinte comando do Windows PowerShell para abrir o arquivo Web.config do Shipping Service.
8. notepad C:\DublinTutorial\OrderServiceSolution\Completed\Shipp ingService\Web.config

Substitua a seo do cliente pela seguinte seo de cliente.


<client>

<endpoint address="http://localhost:95/OrderWorkflowService/Orde rWorkflow.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_Microsoft.Sampl es.Dublin.Tutorials.OrderService.OrderWorkflowService. IOrderWorkflowService" contract="OrderWorkflowService.MicrosoftSamplesDublinT utorialsOrderServiceOrderWorkflowServiceIOrderWorkflow Service" name="BasicHttpBinding_Microsoft.Samples.Dublin.Tutori als.OrderService.OrderWorkflowService.IOrderWorkflowSe rvice" /> </client>

Feche o bloco de notas e clique em Salvar quando o sistema solicitar que salve as alteraes.

Criando pacotes de implantao usando o MSBuild com o Windows PowerShell O Mecanismo de Compilao da Microsoft (MSBuild) a plataforma de compilao para Microsoft e Visual Studio. O MSBuild totalmente transparente em relao a como ele processa e compila o software, permitindo que os desenvolvedores planejem e criem produtos nos ambientes de laboratrio de compilao em que o Visual Studio no est instalado. O MSBuild est includo como parte do .NET Framework. Siga as seguintes etapas nesta seo a fim de usar o MSBuild para compilar novos pacotes de implantao no aplicativo Order Service. Esses comandos podem ser adicionados a um script do Windows PowerShell a fim de automatizar a compilao. Para obter mais informaes sobre MSBuild, consulte a Viso geral do MSBuild (http://go.microsoft.com/fwlink/?LinkId=123876). 1. No Windows PowerShell, execute o seguinte comando a fim de atribuir uma varivel chamada MSBuildPath para o caminho completo do MSBuild executvel no diretrio .NET Framework. Esse comando determina o caminho com base no valor da cadeia de caracteres InstallPath, na chave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.
2. $MSBuildPath = "$($(gp -Path HKLM:\Software\Microsoft\'NET Framework Setup'\NDP\v4\Full).InstallPath)MSBuild.exe" 3. Execute o seguinte comando no Windows PowerShell para compilar o pacote de implantao do projeto OrderProcessingService: 4. .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\Orde rProcessingService\OrderProcessingService.csproj' /T:Package

/P:PackageLocation='C: \DublinTutorial\PS_DeploymentPac kages\OrderProcessingService.zip' 5. Execute o seguinte comando no Windows PowerShell para compilar o pacote de implantao do projeto OrderWorkflowService: 6. .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\Orde rWorkflowService\OrderWorkflowService.csproj' /T:Package /P:PackageLocation='C: \DublinTutorial\PS_DeploymentPac kages\OrderWorkflowService.zip' 7. Execute o seguinte comando no Windows PowerShell para compilar o pacote de implantao do projeto ShippingService: 8. .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\Ship pingService\ShippingService.csproj' /T:Package /P:PackageLocation='C: \DublinTutorial\PS_DeploymentPac kages\ShippingService.zip' 9. Verifique se todos os trs arquivos zip foram criados no diretrio C:\DublinTutorial\PS_DeploymentPackages, conforme mostrado a seguir: 10. 11. PS C:\> dir C:\DublinTutorial\PS_DeploymentPackages\*.zip 12. 13. 14. Directory: C:\DublinTutorial\PS_DeploymentPackages 15. 16. 17. Mode LastWriteTime Length Name 18. --------------------- ---19. -a--11/11/2009 5:40 PM 13836 OrderProcessingService.zip 20. -a--11/11/2009 5:41 PM 22717 OrderWorkflowService.zip 21. -a--11/11/2009 5:41 PM 25177 ShippingService.zip 22. Se voc no compilou o aplicativo OrderClient, que usado como um cliente para os servios, execute o seguinte comando no Windows PowerShell para compilar o aplicativo OrderClient: 23. .$MSBuildPath 'C:\DublinTutorial\OrderServiceSolution\Completed\Orde rClient\OrderClient.csproj'

Crie o site OrderService_PS e o pool de aplicativos. Nesta seo voc usar a ferramenta de administrao Appcmd.exe do IIS para criar o site e o pool de aplicativos. Voc usar o provedor de ambiente do Windows

PowerShell a fim de fazer referncia ao caminho para Appcmd.exe, usando a varivel de ambiente SystemRoot. Para saber como isso funciona, digite o seguinte comando no Windows PowerShell:
$env:SYSTEMROOT

A sada resultante dever mostrar o diretrio raiz do sistema. Siga as etapas a seguir para criar o site OrderService_PS e o pool de aplicativos OrderServiceAppPool_PS. Esses comandos tambm podem ser adicionados em um script de implantao do Windows PowerShell para automao. 1. No Windows PowerShell, digite o seguinte comando para criar o pool de aplicativos OrderServiceAppPool_PS, configurado para usar a verso 4 do .NET Framework.
2. .$env:SystemRoot\System32\inetsrv\appcmd.exe add apppool /Name:OrderServiceAppPool_PS managedRuntimeVersion:v4.0

Verifique se o comando resulta na seguinte sada sem erros.


APPPOOL object "OrderServiceAppPool_PS" added

3. Digite o seguinte comando no Windows PowerShell para criar um novo site chamado OrderService_PS, que ser configurado para usar a porta 95 e armazenar seu contedo no diretrio C:\DublinTutorial\OrderService_PS.
4. .$env:SystemRoot\System32\inetsrv\appcmd.exe add site /name:OrderService_PS /bindings:http/ *:95: /physicalPath:C:\DublinTutorial\OrderService_PS

Verifique se o comando resulta na seguinte sada sem erros.


SITE object "OrderService_PS" added APP object "OrderService_PS/" added VDIR object "OrderService_PS/" added

5. Digite o seguinte comando no Windows PowerShell a fim de configurar o site OrderService_PS para usar o OrderServiceAppPool_PS como o pool de aplicativos padro.
6. .$env:SystemRoot\System32\inetsrv\appcmd.exe set site OrderService_PS /applicationDefaults.appl icationPool:OrderServiceAppPo ol_PS

Verifique se o comando resulta na seguinte sada sem erros.


SITE object "OrderService_PS" changed

Implantando os Servios da Web com a ferramenta Web Deployment e o Windows PowerShell Nesta seo, voc usar a ferramenta Web Deployment para implantar os servios da Web em um novo site chamado OrderService_PS. Este tutorial usa o sufixo _PS para indicar que o site foi criado com o Windows PowerShell. Os comandos mostrados nessa seo podem ser adicionados a um script de implantao do Windows PowerShell para implantar o aplicativo Order Service. Para obter mais informaes sobre a ferramenta Web Deployment, consulte Ferramenta Web Deployment (http://go.microsoft.com/fwlink/?LinkId=154601). 1. No Windows PowerShell, execute o seguinte comando para atribuir uma varivel chamada MSDeployPath ao caminho completo da ferramenta Web Deployment.
2. $MSDeployPath = "$env:ProgramFil es\IIS\Microsoft Web Deploy\msdeploy.exe" 3. Execute o seguinte comando no Windows PowerShell para implantar o pacote OrderProcessingService no site OrderService_PS: 4. .$MSDeployPath -verb:sync source:package=C:\DublinTutorial\PS_DeploymentPackages \OrderProcessingService.zip -dest:auto setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderProcessingService

Verifique se a sada resultante semelhante seguinte sada sem erros.


Info: Updating createApp (OrderService_PS/OrderProcessingService). Info: Adding contentPath (OrderService_PS/OrderProcessingService). Info: Adding dirPath (OrderService_PS/OrderProcessingService). Info: Adding child dirPath (OrderService_PS/OrderProcessingService \bin). Info: Adding child filePath (OrderService_PS/OrderPr ocessingService\bin\OrderProce ssingService.dll). Info: Adding child filePath (OrderService_PS/OrderProcessingService \OrderProcessin g.svc). Info: Adding child filePath (OrderService_PS/OrderProcessingService \Web.config). Total changes: 7 (6 added, 0 deleted, 1 updated, 0 parameters changed, 22099 bytes copied)

5. Execute o seguinte comando no Windows PowerShell para implantar o pacote OrderWorkflowService no site OrderService_PS:

6. .$MSDeployPath -verb:sync source:package=C:\DublinTutorial\PS_DeploymentPackages \OrderWorkflowService.zip -dest:auto setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/OrderWorkflowService

Verifique se a sada resultante semelhante seguinte sada sem erros.


Info: Updating createApp (OrderService_PS/OrderWorkflowService). Info: Adding contentPath (OrderService_PS/OrderWorkflowService). Info: Adding dirPath (OrderService_PS/OrderWorkflowService). Info: Adding child dirPath (OrderService_PS/OrderWorkflowService \bin). Info: Adding child filePath (OrderService_PS/OrderWorkflowService \bin\OrderWorkflo wService.dll). Info: Adding child filePath (OrderService_PS/OrderWorkflowService \OrderWorkflow.xa mlx). Info: Adding child filePath (OrderService_PS/OrderWorkflowService \Web.config). Total changes: 7 (6 added, 0 deleted, 1 updated, 0 parameters changed, 84412 bytes copied)

7. Execute o seguinte comando no Windows PowerShell para implantar o pacote ShippingService no site OrderService_PS:
8. .$MSDeployPath -verb:sync source:package=C:\DublinTutorial\PS_DeploymentPackages \ShippingService.zip -dest:auto -setParam:Name=`"IIS Web Application Name`"`,value=OrderService_PS/ShippingService

Verifique se a sada resultante semelhante seguinte sada sem erros.


Info: Updating createApp (OrderService_PS/ShippingService). Info: Adding contentPath (OrderService_PS/ShippingService). Info: Adding dirPath (OrderService_PS/ShippingService). Info: Adding child dirPath (OrderService_PS/ShippingService \bin). Info: Adding child filePath (OrderService_PS/ShippingService \bin\ShippingService.d ll).

Info: Adding child filePath (OrderService_PS/ShippingService \bin\ShippingService.p db). Info: Adding child filePath (OrderService_PS/ShippingService \Shipping.svc). Info: Adding child filePath (OrderService_PS/ShippingService \Web.config). Total changes: 8 (7 added, 0 deleted, 1 updated, 0 parameters changed, 68029 bytes copied)

Testando os servios da Web com o Windows PowerShell Nesta seo, voc usar uma funo de script simples para verificar se possvel procurar os servios da Web. 1. No Windows PowerShell, digite o seguinte comando para usar o bloco de notas, a fim de criar um novo script utilitrio chamado Utility.ps1.
2. NotePad Utility.ps1

Quando o bloco de notas iniciar e perguntar se deseja criar o arquivo, clique em Sim. 3. Copie e cole a seguinte funo de script no bloco de notas.
4. 5. #===================================================== ==# 6. #=== ===# 7. #=== Performs a simple browse test to a web service. ===# 8. #=== ===# 9. #===================================================== ==# 10. 11. function BrowseWebService($address) 12. { 13. trap {return $false;} 14. 15. $WebClient = New-Object System.Net.WebClient 16. 17. $content = $WebClient.DownloadString($address) 18. 19. $content.Contains("You have created a service.") 20. }

Essa funo usa a classe System.Net.WebClient para analisar a resposta de texto da solicitao do endereo de servio especificado. Se a resposta contiver a

cadeia de caracteres You have created a service., o teste de busca retornar $true. Caso contrrio, ele retornar $false.

21. Feche o bloco de notas e clique em Salvar quando o sistema solicitar que salve Utility.ps1. 22. Importe o script utilitrio como um mdulo para a seo atual do Windows PowerShell executando o seguinte comando no Windows PowerShell.
23. Import-Module .\Utility.ps1 24. Teste os trs servios da Web do Order Service digitando os trs comandos a seguir no Windows PowerShell. 25. BrowseWebService "http://localhost:95/OrderProcessingService/OrderProce ssing.svc" 26. BrowseWebService "http://localhost:95/OrderWorkflowService/OrderWork flo w.xamlx" 27. BrowseWebService "http://localhost:95/ShippingService/Shipping.svc"

Verifique se cada comando do BrowseWebService informou True, conforme mostrado a seguir.


PS C:\> BrowseWebService "http://localhost:95/OrderWorkflowService/OrderWorkflo w.xamlx" True PS C:\> BrowseWebService "http://localhost:95/OrderProcessingService/OrderProce ssing.svc" True PS C:\> BrowseWebService "http://localhost:95/ShippingService/Shipping.svc" True

O que acabei de fazer? Nesta lio, voc atualizou os arquivos de configurao de cada projeto para usar os novos endereos de ponto de extremidade. Depois, voc criou um novo site e um novo pool de aplicativos no Windows PowerShell. Por fim, voc usou o Windows PowerShell para criar e implantar cada projeto de servio no novo site.

Lio 3: configurando o Order Service com o Windows PowerShell


Objetivo: Demonstrar usando os cmdlets Windows Server AppFabric para Configurar Aplicativos. Finalidade: Os cmdlets AppFabric no Windows PowerShell representam uma ferramenta til que os desenvolvedores e administradores podem usar para automatizar a configurao e o gerenciamento de aplicativos que incluem servios WCF e/ou WF. Nesta lio, voc reconfigurar o monitoramento e a persistncia para o aplicativo Servio de Pedidos. Pr-requisitos Observe os seguintes pr-requisitos Antes de comear esta lio:
y

Voc deve configurar a sesso do Windows PowerShell conforme documentado na Lio 1: introduo aos cmdlets do Windows Server AppFabric para Windows PowerShell. Voc deve ter implantado o aplicativo Order Sedrvice conforme documentado na Lio 2: implantando o aplicativo Order Service com o Windows PowerShell .

Procedimento Voc realizar os seguintes procedimentos para reconfigurar o aplicativo Servio de Pedidos com o Windows PowerShell:
1. Crie e inicialize os repositrios de monitoramento e per sistncia para o aplicativo. 2. Crie as cadeias de conexo para o repositrio. 3. Configure o servio OrderWorkflow para o aplicativo Servio de Pedidos para usar o novo repositrio de monitoramento e de persistncia. 4. Habilite o protocolo net.pipe para o aplicat ivo.

Criando e inicializando os bancos de dados de monitoramento e de persistncia Nesta seo, voc ir criar e inicializar um novo repositrio de monitoramento e de persistncia para uso com o aplicativo Servio de Pedidos.
Criando e inicializando o repo sitrio de monitoramento 1. Execute o comando a seguir no Windows PowerShell. 2. Initialize-ASMonitoringSqlDatabase -Database "OrderService_PS" -Admins "AS_Administrators","NT AUTHORITY\LOCAL SERVICE" -Readers "AS_Observers" Writers "BUILTIN\IIS_IUSRS" | fl *

Observe que o nome do repositrio tem um sufixo _PS representando que voc fez isso com o Windows PowerShell. Portanto, voc no tem quaisquer conflitos de nomes com o tutorial de interface do usurio.

As permisses definidas para o repositrio baseia m-se nas permisses padro do AppFabric e nos nomes de entidade.

No comando anterior, voc conectou o objeto de repositrio resultante ao alias fl para o cmdlet Format-List do Windows PowerShell. mais fcil ver o resultado da operao usando o formato de lista em vez do formato de tabela padro, pois o formato padro trunca o resultado.

3. Verifique se a sada no Windows PowerShell depois de executar este comando parece semelhante ao seguinte sem erros. 4. Server : SERVER1 5. Database : Orde rService_PS 6. ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS;Integrated Security=True

Um novo repositrio de monitoramento chamado OrderService_PS foi criado e inicializado no monitoramento.


Criando e inicializando o repositrio de pe rsistncia

Para inicializar o repositrio OrderService_PS com tabelas e artefatos relacionados a persistncia, use o cmdlet Initialize-ASPersistenceDatabase. Esse cmdlet aceita trs parmetros relacionados segurana:
y y y

-Admins -Readers -Users

Nesse tutorial, voc est novamente usando os nomes de entidade padro do AppFabric. Ao usar esses parmetros com esse cmdlet, voc deve usar os nomes de entidade completos. Para fazer isso, voc usar o provedor de ambiente para que o Windows PowerShell resolva o nome do computador local. Para ver como isso funciona, digite o comando a seguir no Windows PowerShell.
$env:COMPUTERNAME

O resultado do comando exibe o nome do computador local de acordo com a varivel de ambiente COMPUTERNAME. Voc usar essa abordagem para fornecer o nome principal completo das entidades padro do AppFabric. Para criar e inicializar o repositrio de persistncia para o aplicativo Servio de Pedidos
1. Digite o comando a seguir no Windows PowerShell para inicializar o repositrio OrderService_PS para persistncia usando os nomes de entidade padro do AppFabric. 2. Initialize-ASPersistenceSqlDatabase -Database "OrderService_PS" -Admins "$($env:COMPUTERNAME)\AS_Administrators" -Readers "$($env:COMPUTERNAME)\AS_Observers" -Users "BUILTIN\IIS_IUSRS" Confirm:$false | fl * Observe o parmetro Confirm:$false que voc passou. Isso permite que voc ignore os prompts para confirmar as alteraes ao repositrio.

3. Verifique se o resultado semelhante ao exibido abaixo sem erros. 4. Server : SERVER1 5. Database : OrderService_PS 6. ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS

O repositrio OrderService_PS agora inicializado para uso com persistncia. Criando a cadeia de conexo Para configurar o aplicativo para usar o novo repositrio de monitoramento e de persistncia que acabou de criar, voc deve criar uma cadeia de conexo para o novo repositrio. Atualmente, o Mdulo do ApplicationServer no Windows PowerShell no inclui um cmdlet para fazer isso. Usaremos ento um exemplo de funo de script baseado no cdigo de exemplo no exemplo Configurao com script do AppFabric que mostra como voc pode fazer isso. Para obter mais informaes sobre esse exemplo, consulte Exemplos. Para criar a cadeia de conexo para o novo repositrio
1. No Windows PowerShell, digite o comando a seguir para abrir Utility.ps1. 2. Notepad Utility.ps1 3. Copie e cole o cdigo a seguir na parte inferior do arquivo no Bloco de Notas. 4. #===================================================== ====================================================#

5. #=== ===# 6. #=== Adds or updates the specified connection string setting in the specified .NET configuration file. ===# 7. #=== ===# 8. #===================================================== ====================================================# 9. 10. function UpdateConnectionString([string]$name, [string]$connectionString) 11. { 12. $providerName = "System.Data.SqlClient" 13. 14. $NETFramework4Path = gp -Path HKLM:\Software\Microsoft\'NET Framework Setup'\NDP\v4\Full 15. $ConfigPath = "$($NETFramework4Path.InstallPath)Config \Web.config" 16. 17. Write-Output ("ConfigPath : " + $ConfigPath) 18. 19. $xml = [xml](Get-Content $ConfigPath) 20. $root = $xml.get_DocumentElement() 21. 22. 23. $connectionStrings = $root.SelectSingleNode("connectionStrings") 24. if ($connectionStrings -eq $null) 25. { 26. $locations = $root.SelectNodes("l ocation") 27. 28. foreach ($locationNode in $locations) 29. { 30. $locStrings = $locationNode.SelectSingleNode("connectionStrings") 31. 32. if ($locStrings -ne $null) 33. { 34. $connectionStrings = $locStr ings 35. } 36. } 37. 38. if ($connectionStrings -eq $null) 39. { 40. $connectionStrings = $xml.CreateElement("connectionStrings") 41. $root.AppendChild($connectionStrings) | Out-Null 42. } 43. }

44. 45. $xpath = "add[@name='" + $name + "']" 46. $add = $connectionStrings.SelectSingleNode($xpath) 47. if ($add -eq $null) 48. { 49. Write-Output "Adding new connection string setting..." 50. $add = $xml.CreateElement("add") 51. $connectionStrings.AppendChild($add) | Out Null 52. } 53. else 54. { 55. Write-Output "Updating existing connection string setting..." 56. } 57. 58. $add.SetAttribute("name", $name) 59. $add.SetAttribute("connectionString", $connectionString) 60. $add.SetAttribute("providerName", $providerName) 61. Write-Output $add | Format-List 62. 63. $xml.Save($ConfigPath) 64. } 65. 66. Feche o Bloco de Notas e, em seguida, clique em Salvar para salvar Utility.ps1 67. No Windows PowerShell, digite o comando a seguir para adicionar o script Utility.ps1 como um mdulo para a sesso atual do Windows PowerShell. 68. import-module .\Utility.ps1 69. No Windows PowerShell, voc pode usar a funo UpdateConnectionString para adicionar a nova cadeia de conexo. Voc deve escolher a fonte de dados correta com base na instalao do Microsoft SQL Server ou SQL Server Express no computador usado para esse tutorial. Se voc tiver somente o SQL Server Express instalado, use o seguinte comando, que usa o SQL Server Express no computador local como a fonte de dados: UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True" Se voc instalou SQL Server, use o seguinte comando, que usa SQL Server como a fonte de dados:

UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True" 70. Verifique a nova cadeia de conexo executando o Gerenciador do IIS e clique duas vezes no applet Monitorando configurao do banco de dados . Isso deve exibir a nova cadeia de conexo denominada OrderService_PS juntamente com as cadeias de conexo padro. O status da nova cadeia de conexo deve ser Inicializado.
o

Agora, o aplicativo Servio de Pedidos pode ser configurado por AppFabric para usar o repositrio OrderService_PS para monitoramento e persistncia. Configurando o aplicativo para usar o banco de dados de monitoramento e de persistncia Para configurar site Order Service_PS para usar o novo repositrio para monitoramento
1. No Windows PowerShell, digite o comando a seguir para configurar o monitoramento para que o site OrderService_PS use o novo repositrio. 2. Set-ASAppMonitoring -SiteName OrderService_PS MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS 3. Verifique se sua sada da execuo do comando parece semelhante ao seguinte, que exibe as configuraes de monitoramento aplicadas ao site. 4. ConnectionStringName : OrderService_PS 5. ConnectionString : Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True 6. IsEnabled : True 7. MonitoringLevel : HealthMonitoring 8. ProviderId : c37234f8 -4eae-41c8-9bd4cd42706d4219 9. ProviderName : System.Data.SqlClient 10. TrackingProfile : HealthMonitoring Tracking Profile 11. SiteName : OrderService_PS 12. VirtualPath : /

Para configurar site OrderService_PS use tambm o novo repositrio de persistncia


1. No Windows PowerSh ell, execute o comando a seguir. 2. Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS 3. Verifique se sua sada da execuo do comando parece semelhante sada a seguir, que exibe as configuraes de persistncia apl icadas ao site.

4. ConnectionString 5. ConnectionStringName 6. HostLockRenewalPeriod 7. InstanceCompletionAction 8. InstanceEncodingOption 9. InstanceLockedExceptionAction 10. AuthorizedWindowsGroup 11. IsLocal 12. BehaviorName

: : : : : :

OrderService_PS 00:00:20 DeleteNothing GZip Basi cRetry : AS_Administrators : True :

Habilitando o protocolo net.pipe O protocolo net.pipe j dever estar habilitado para o aplicativo da Web OrderWorkflowService se voc tiver seguido a etapa na Lio 3: Configurando o aplicativo HRApplicationServices do Tutorial usando a interface do Windows Server AppFabric. No entanto, esta seo mostra como habilitar o protocolo com o Windows PowerShell. O Mdulo do ApplicationServer no Windows PowerShell no expe um cmdlet para esta operao. Em vez disso, a operao executada usando Appcmd.exe. Para obter mais informaes sobre Appcmd.exe, consulte o seguinte link: Appcmd.exe (a pgina pode estar em ingls) (http://go.microsoft.com/fwlink/?LinkId=169337). Para habilitar o protocolo net.pipe para o aplicativo da Web OrderWorkflowService, execute o comando a seguir no Windows PowerShell.
.$env:SystemRoot\System32\inetsrv\appcmd.exe set app "OrderService_PS/OrderWorkflowService" /enabledProtocols:"http,net.pipe"

Appcmd.exe reportar o xito da operao no Windows PowerShell da maneira a seguir.


APP object "OrderService_PS/OrderWorkflowService" changed

O que acabei de fazer? Nesta lio, voc criou um novo repositrio de monitoramento e de persistncia usando cmdlets do AppFabric. Voc tambm criou uma nova cadeia de conexo no arquivo Web.config e configurou o site OrderService_PS para usar o novo repositrio para monitoramento e persistncia. Voc pode adicionar todos esses comandos a um script do Windows PowerShell para automatizar a configurao do aplicativo.

Lio 4: monitorando o Order Service com o Windows PowerShell


Tempo para concluso: 25 minutos Objetivo: Aprender a monitorar dados de monitoramento histricos e de tempo real usando cmdlets do Windows Server AppFabric no Windows PowerShell. Finalidade: O objetivo desta lio ajud-lo a se familiarizar com as informaes de instncia relatadas usando cmdlets do AppFabric no Windows PowerShell, e como utilizar essas informaes para controlar as instncias. Pr-requisitos Observe os seguintes pr-requisitos antes de iniciar esta lio:
y

Voc deve concluir a Lio 3: configurando o Order Service com o Windows PowerShell antes de comear essa lio.

Procedimento Voc realizar os seguintes exerccios nesta lio: 1. Comunicar informaes de monitoramento com o Windows PowerShell. 2. Controlar uma instncia de fluxo de trabalho com o Windows PowerShell. 3. Usar o Windows PowerShell para visualizar os eventos de fluxo de trabalho monitorados a partir do banco de dados de monitoramento do AppFabric. Comunicando informaes de monitoramento com o Windows PowerShell. Para comunicar instncias de WF do OrderWorkflowService implantado com o aplicativo Solicitar Servio 1. Execute OrderClient.exe, no diretrio C:\DublinTutorial\OrderServiceSolution\Completed\OrderClient\bin\Debug. Esse arquivo foi criado na Lio 2: implantando o aplicativo Order Service com o Windows PowerShell. Voc pode copiar o seguinte comando no Windows PowerShell para executar o OrderClient.
2. C:\DublinTutorial\OrderServiceSolution\Completed\Order Client\bin\Debug\OrderClient.exe 3. Clique em Submit (Enviar) no Order Form (Formulrio de Pedido) do Contoso.com. Antes de continuar, verifique se a seo de status na parte inferior do formulrio mostra Your order has been received (Seu pedido foi recebido). Aps essa mensagem ser exibida pelo formulrio, uma instncia do OrderWorkflowService ser executada, simulando o processamento de um pedido.

4. Anote o horrio para que voc possa fazer referncia cruzada com a hora de criao de uma instncia de fluxo de trabalho. 5. Para comunicar instncias de fluxo de trabalho do OrderWorkflowService usando cmdlets do AppFabric, execute o seguinte comando no Windows PowerShell.
6. Get-ASAppServiceInstance -SiteName "OrderService_PS" VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl InstanceId, Status, Cond ition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage

Este comando l todas as instncias do OrderWorkflowService no banco de dados OrderService_PS. As instncias so canalizadas para o cmdlet FormatList usando seu alias fl para comunicar apenas as propriedades de fluxo de trabalho desejadas.

7. Verifique se o seu comando gerou uma lista de instncias de fluxo de trabalho semelhante lista abaixo.
8. InstanceId : 95a25419 -0d71-42c4-ab70aa523ba603fc 9. Status : Running 10. Condition : Active 11. CreationTime : 11/1/2009 2:04:48 AM 12. LastUpdateTime : 11/1/2009 2:04:56 AM 13. SiteName : OrderService_PS 14. VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx 15. ExceptionMessage :

Voc pode usar essas informaes para monitorar o estado e as informaes de exceo das instncias.

16. Encontre uma instncia com o CreationTime que voc anotou na etapa 3. Controlando instncias de fluxo de trabalho com o Windows PowerShell Nesta seo voc ir suspender, reiniciar e parar uma instncia de fluxo de trabalho. 1. Execute OrderClient.exe novamente para ter certeza de que tem uma instncia em estado de execuo. O seguinte comando no Windows PowerShell executa o OrderClient.
2. C:\DublinTutorial\OrderServiceSolution\Completed\Order Client\bin\Debug\OrderClient.exe

3. Clique em Submit (Enviar) no Order Form (Formulrio de Pedido) do Contoso.com. Antes de continuar, verifique se a seo de status na parte inferior do formulrio mostra Your order has been received (Seu pedido foi recebido). Aps essa mensagem ser exibida pelo formulrio, uma instncia do OrderWorkflowService ser executada, simulando o processamento de um pedido. 4. Anote o horrio para que voc possa fazer referncia cruzada com a hora de criao de uma instncia de fluxo de trabalho. 5. Comunique as instncias de fluxo de trabalho do OrderWorkflowService usando cmdlets do AppFabric, por meio da execuo do seguinte comando no Windows PowerShell.
6. Get-ASAppServiceInstance -SiteName "OrderService_PS" VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" Status Running | fl InstanceId, Status, Condition, CreationTime, LastUpdateTime, SiteName, VirtualPath, ExceptionMessage 7. Verifique se o seu comando gerou uma lista de instncias de fluxo de trabalho semelhante lista abaixo. 8. InstanceId : 95a25419 -0d71-42c4-ab70aa523ba603fc 9. Status : Running 10. Condition : Active 11. CreationTime : 11/1/2009 2:04:48 AM 12. LastUpdateTime : 11/1/2009 2:04:56 AM 13. SiteName : OrderSer vice_PS 14. VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx 15. ExceptionMessage : 16. Encontre uma instncia com o CreationTime anotado na etapa 3. Destaque o valor GUID apresentado em InstanceID, arrastando o mouse sobre o GUID com o boto esquerdo do mouse pressionado.

17. Depois que todo o GUID for destacado, clique com o boto direito do mouse dentro do GUID destacado para copiar o GUID na rea de transferncia. 18. Para suspender a instncia fluxo de trabalho em execuo identificada por InstanceID na sua rea de transferncia, execute o seguinte comando, substituindo o InstanceId pelo GUID mostrado abaixo.
19. Get-ASAppServiceInstance -InstanceId 95a25419-0d7142c4-ab70-aa523ba603fc | Suspend -ASAppServiceInstance

Este comando l a instncia fluxo de trabalho identificada pelo InstanceId e a canaliza para o cmdlet Suspend-ASAppServiceInstance para suspender o fluxo de trabalho.

20. Para reiniciar o fluxo de trabalho, execute o seguinte comando, substituindo o seu InstanceId pelo GUID mostrado abaixo.
21. Get-ASAppServiceInstance -InstanceId 95a25419-0d7142c4-ab70-aa523ba603fc | Resume-ASAppServiceInstance

Este comando l a instncia fluxo de trabalho identificada pelo InstanceId e a canaliza para o cmdlet Resume-ASAppServiceInstance para reiniciar o fluxo de trabalho suspenso.

22. Para interromper e encerrar a instncia, execute o seguinte comando, substituindo o seu InstanceId pelo GUID mostrado abaixo.
23. Get-ASAppServiceInstance -InstanceId 95a25419-0d7142c4-ab70-aa523ba603fc | Stop-ASAppServiceInstance Terminate

Este comando l a instncia fluxo de trabalho identificada pelo InstanceId e a canaliza para o cmdlet Stop-ASAppServiceInstance para interromper e encerrar o fluxo de trabalho.

Visualizando Eventos Controlados de WF com o Windows PowerShell De acordo com o nvel de monitoramento e o perfil de rastreamento configurado para um fluxo de trabalho, voc pode rastrear vrios pontos de dados em um fluxo de trabalho. Defina o nvel de monitoramento como HealthMonitoring usando o cmdlet Set-ASAppMonitoring da Lio 3: configurando o Order Service com o Windows PowerShell. Nesta seo, voc gerar um relatrio dos eventos do WF rastreados na sua instncia. Para comunicar essa informao, voc dever usar novamente uma funo de script que voc adicionar ao seu mdulo de script Utility.ps1. 1. No Windows PowerShell, digite o seguinte comando para abrir o arquivo de script Utility.ps1.
2. Notepad .\Utility.ps1 3. Copie e cole a seguinte funo de script no Bloco de Notas, no final do script Utility.ps1. 4. 5. #===================================================== =======================================# 6. #=== ===# 7. #=== Make sure the modules and snapins are loaded ===# 8. #=== ===# 9. #===================================================== =======================================#

10. 11. function RegisterSnapIn($snapin) 12. { 13. $reg = Get-PSSnapin -Registered -Name $snapin 14. $added = Get-PSSnapin -Name $snapin -ErrorAction SilentlyContinue 15. if ($reg.Name -eq $snapin) 16. { 17. if ($added.Name -ne $snapin) 18. { 19. Add-PSSnapin $snapin 20. } 21. } 22. } 23. 24. 25. RegisterSnapIn "SqlServerProviderSnapin100" 26. RegisterSnapIn "SqlServerCmdletSnapin100" 27. Import-Module ApplicationServer 28. 29. 30. 31. #=================================================== =========================================# 32. #=== ===# 33. #=== Retrieves WF Events for the given InstanceId from the specified monitoring database. ===# 34. #=== ===# 35. #=================================================== =========================================# 36. 37. 38. Function GetWFEvents($InstanceId,$database) 39. { 40. 41. $SQL = "SELECT EventSources.Name AS WorkflowName, " + 42. "EventSources.Computer, " + 43. "EventSources.Site, " + 44. "EventSources.VirtualPath, " + 45. "WfEvents.Id AS EventID, " + 46. "WfEvents.WorkflowInstanceId, " + 47. "WfEvents.TimeCreated, " + 48. "WfEvents.Name AS EventName, " + 49. "WfEvents.State, " + 50. "WfEvents.ActivityName, " + 51. "WfEvents.Exception " + 52. "FROM EventSources INNER JOIN " +

53. "WfEvents ON EventSources.Id = WfEvents.EventSourceId " + 54. "WHERE WfEvents.WorkflowInstanceId = `'$InstanceId`'" 55. 56. 57. Invoke-Sqlcmd -Query $SQL -Database $database 58. } 59.

Esse cdigo de script verifica se os componentes necessrios para usar os cmdlets SQL Server esto carregados na sesso do Windows PowerShell. Ele tambm adiciona uma funo utilitria, chamada GetWFEvents. Essa funo permite que voc consulte o banco de dados de monitoramento, recuperando informaes de eventos de fluxo de trabalho a partir do modo de exibio Wfevents. A consulta SQL usada pela funo realiza uma juno interna com o modo de exibio EventSources a fim de identificar o fluxo de trabalho associado aos eventos.

60. Feche o Bloco de Notas e clique em Salvar para salvar as alteraes realizadas em Utility.ps1. 61. No Windows PowerShell, execute o seguinte comando para importar as novas alteraes realizadas no Utility.ps1 para a sua sesso do Windows PowerShell.
62. Import-Module .\Utility.ps1 63. Digite o seguinte comando no Windows PowerShell para utilizar a nova funo de script e consultar os eventos de fluxo de trabalho registrados no banco de dados de monitoramento para a sua instncia de fluxo de trabalho. No deixe de substituir o seu ID de instncia pelo GUID mostrado abaixo. 64. GetWFEvents 95a25419-0d71-42c4-ab70-aa523ba603fc OrderService_PS 65. O resultado no Windows PowerShell deve ser uma lista de eventos semelhante mostrada a seguir. 66. WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderW orkflowService.OrderWorkflow 67. Computer : server1 68. Site : OrderService_PS 69. VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx 70. EventID : 975 71. WorkflowInstanceId : 95a25419 -0d71-42c4-ab70aa523ba603fc 72. TimeCreated : 2009 -11-01 10:06:57.6974305 73. EventName : Order completed 74. State : Closed 75. ActivityName :

76. Exception : 77. 78. WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderW orkflowService.OrderWorkflow 79. Computer : server1 80. Site : OrderService_PS 81. VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx 82. EventID : 976 83. WorkflowInstanceId : 95a25419 -0d71-42c4-ab70aa523ba603fc 84. TimeCreated : 2009 -11-01 10:06:57.6974305 85. EventName : Order Service 86. State : Closed 87. ActivityName : 88. Exception : 89. 90. WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderW orkflowService.OrderWorkflow 91. Computer : server1 92. Site : OrderService_PS 93. VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx 94. EventID : 977 95. WorkflowInstanceId : 95a25419 -0d71-42c4-ab70aa523ba603fc 96. TimeCreated : 2009-11-01 10:06:57.6974305 97. EventName : 98. State : Completed 99. ActivityName : 100. Exception :

Os eventos comunicados nesta etapa fornecem informaes sobre o status e o estado de atividades, e operaes no fluxo de trabalho. Essas informaes so teis para monitorar o andamento de um fluxo de trabalho durante o tempo de execuo. Para obter mais informaes sobre como consultar o banco de dados de monitoramento, consulte Monitorando exibies e tabelas de banco de dados. Alm disso, voc pode analisar o script de exemplo Consultando o repositrio de monitoramento do SQL usando o Windows PowerShell. Para obter mais informaes, consulte Exemplos. O que acabei de fazer? Nesta lio, voc aprendeu como comunicar informaes de fluxo de trabalho monitoradas pelo AppFabric e identificar uma instncia. Voc tambm aprendeu a usar as operaes de controle de suspenso, retomada e interrupo nas instncias. Finalmente, voc usou uma nova funo de script adicionada ao mdulo de script

Utility.ps1 para comunicar eventos de fluxo de trabalho a partir do banco de dados de monitoramento.

Lio 5: rastreando o fluxo de trabalho com o Windows PowerShell


Objetivo: Aprender como configurar um perfil de rastreamento para monitorar variveis definidas em um fluxo de trabalho com o Windows PowerShell. Finalidade: A finalidade desta lio mostrar como usar os cmdlets do Windows Server AppFabric para configurar um perfil de rastreamento personalizado para o Order Service. Em seguida, voc relatar as informaes de rastreamento personalizado a partir do repositrio de armazenamento usando uma funo de script. Pr-requisitos Observe os seguintes requisitos Antes de comear esta lio:
y

Voc deve ter o aplicativo Order Service implantado conforme documentado na Lio 2: implantando o aplicativo Order Service com o Windows PowerShell . Voc deve concluir a Lio 3: configurando o Ord er Service com o Windows PowerShell. preciso ter algum conhecimento de SQL Server para compreender todas as sees desta lio.

Procedimento Voc executar as seguintes etapas nesta lio:


1. Crie um novo perfil de rastreamento personalizado para representa r as configuraes feitas com o Windows PowerShell. 2. Relate a configurao de rastreamento atual com o Windows PowerShell. 3. Use o Windows PowerShell para configurar o OrderWorkflowService para usar o novo perfil de rastreamento personalizado. 4. Relate as informaes de rastreamento personalizado do repositrio de monitoramento usando o Windows PowerShell.

Criando um novo perfil de rastreamento personalizado Nesta seo, voc criar um novo perfil de rastreamento personalizado, que , na realidade, uma cpia daquele usado na Lio 5: continuar um fluxo de trabalho suspenso usando o AppFabric do Tutorial usando a interface do Windows Server AppFabric. Esse novo perfil de rastreamento ter um nome com o sufixo _PS, para que voc possa associar o perfil a suas configuraes usando os cmdlets AppFabric.

1. No Windows PowerShell, insira o comando a seguir. 2. Notepad OrderService_PS.tp Clique em Sim quando o Bloco de Notas solicitar que voc crie o novo arquivo.

3. Copie e cole os elementos XML a seguir no Bloco de Notas. 4. <trackingProfile name="CustomOrderServiceProfile Windows PowerShell Config"> 5. <workflow activityDefinitionId="*"> 6. <workflowInstanceQueries> 7. <workflowInstanceQuery> 8. <states> 9. <state name="*" /> 10. </states> 11. </workflowInstanceQuery> 12. </workflowInstanceQueries> 13. 14. <activityStateQueries> 15. <activityStateQuery activityName="Wait for order"> 16. <states> 17. <state name="Closed" /> 18. </states> 19. <variables> 20. <variable name="product"/> 21. <variable name="quantity"/> 22. </variables> 23. </activityStateQuery> 24. </activityStateQueries> 25. 26. <faultPropagationQueries> 27. <faultPropagationQuery faultSourceActivityName="*" faultHandlerActivityName="*" /> 28. </faultPropagationQueries> 29. 30. <bookmarkResumptionQueries> 31. <bookmarkResumptionQuery name="*" /> 32. </bookmarkResumptionQueries> 33. 34. <customTrackingQueries> 35. <customTrackingQuery name="*" activityName="*" /> 36. </customTrackingQueries> 37. </workflow> 38. </trackingProfile>

Esse perfil de rastreamento permite rastrear as variveis de fluxo de trabalho product e quantity na atividade Aguardar solicitao em OrderWorkflow.xamlx.

39. Feche o Bloco de Notas e clique em Salvar quando for solicitado para salvar as alteraes feitas em OrderService_PS.tp.

Relatando a configurao de rastreamento do Windows PowerShell Nesta seo, voc usar os cmdlets do AppFabric para Windows PowerShell para exibir a configurao de rastreamento atual do OrderWorkflowService.
1. Execute o comando a seguir no Windows PowerShell para ver se o rastreamento est habilitado no momento para o OrderWorkflowService. 2. Get-ASAppServiceTracking -SiteName OrderService_PS VirtualPath "/OrderWorkflowService/Order Workflow.xamlx" | fl * Os resultados devem ser similares ao seguinte: IsTrackingEnabled ProfileName IsLocal BehaviorName : True : HealthMonitoring Tracking Profile : True :

3. Execute o comando a seguir no Windows PowerShell para ver os p erfis de rastreamento disponveis para o OrderWorkflowService. 4. Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name Os resultados devem ser similares seguinte sada, que exibe os per fis de rastreamento disponveis no momento para o OrderWorkflowService. Name : Name : ErrorsOnly Tracking Profile Name : HealthMonitoring Tracking Profile Name : EndToEndMonitoring Tracking Profile Name : Troubleshooting Tracking Profile

Configurando o rastreamento personalizado com o Windows PowerShell

Nesta seo, voc usar os cmdlets do AppFabric para Windows PowerShell a fim de configurar o OrderWorkflowService para usar o novo perfil de rastreamento personalizado.
1. Execute o comando a seguir para adicionar OrderService_PS.tp lista de perfis de rastreamento disponveis para o OrderWorkflowService. 2. Import-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" -FilePath $(Get-Item ".\OrderService_PS.tp").FullName | fl * Observe que o OrderService_PS.tp deve estar no diretrio atual do Windows PowerShell para que este comando tenha xito.

Os resultados de adicionar o perfil de rastreamento devem ser similares seguinte sada:

Name : CustomOrderServiceProfile - Windows PowerShell Config SiteName : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx IsLocal : True 3. Execute o comando a seguir no Windows PowerShell para ver a nova lista de perfis de rastreamento disponveis para o OrderWorkflowService. 4. Get-ASAppServiceTrackingProfile -SiteName OrderService_PS -VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl Name Os resultados devem ser similares seguinte sada, que inclui o perfil com o nome CustomOrderServiceProfile - Windows PowerShell Config . Name : Name : ErrorsOnly Tracking Profile Name : HealthMonitoring Tracking Profile Name : EndToEndMonitoring Tracking Profile Name : Troubleshooting Tracking Profile Name : CustomOrderServiceProfile - Windows PowerShell Config

5. Para configurar o OrderWorkflowService para usar o novo perfil com o nome CustomOrderServiceProfile - Windows PowerShell Config , execute o comando a seguir no Windows PowerShell. 6. Set-ASAppServiceTracking -SiteName OrderService_PS VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" ProfileName "CustomOrderServiceProfile - Windows PowerShell Config" | fl * Os resultados devem ser similares ao seguinte: IsTrackingEnabled : True ProfileName : CustomOrderServiceProfile Windows PowerShell Config IsLocal : True BehaviorName : 7. Execute o comando a seguir no Windows PowerShell para ver a nova configurao de rastreamento do OrderWorkflowService. 8. Get-ASAppServiceTracking -SiteName OrderService_PS VirtualPath "/OrderWorkflowService/OrderWorkflow.xamlx" | fl * A configurao de rastreamento deve ser relatada da seguinte forma:

IsTrackingEnabled : True ProfileName : CustomOrderServiceProfile Windows PowerShell Config IsLocal : True BehaviorName :

Usando o Windows PowerShell para relatar os dados de rastreamento personalizado Nesta seo, voc usar uma funo de script para relatar eventos de fluxo de trabalho para as variveis de fluxo de trabalho rastreadas que voc configurou na seo anterior. Para relatar as novas informaes de rastreamento, voc deve executar uma nova instncia de Fluxo de Trabalho e gerar os dados de rastreamento com a nova configurao de rastreamento.
Adicionando uma nova funo de script para relatar informaes de rastreamento

Execute as etapas a seguir para adicionar uma nova funo de script a Utility.ps1, a fim de relatar as informaes de rastreamento personalizado.
1. No Windows PowerShell, insira o comando a se guir.

2. Notepad .\Utility.ps1 3. No Bloco de Notas, copie e cole o cdigo de script a seguir no final de Utility.ps1. 4. 5. #===================================================== =======================================# 6. #=== ===# 7. #=== Retrieves Tracked WF Variable Events for the given workflow and variable from the ===# 8. #=== specified monitoring store. ===# 9. #=== ===# 10. #=================================================== =========================================# 11. 12. 13. Function GetTrackedWFVariableEvents($FullWorkflowName,$trackedV ariable,$database) 14. { 15. 16. $SQL = "SELECT EventSources.Name AS WorkflowName, " + 17. "EventSources.Computer, " + 18. "EventSources.Site, " + 19. "EventSources.VirtualPath, " + 20. "WfEvents.Id AS EventID, " + 21. "WfEvents.WorkflowInstanceId, " + 22. "WfEvents.TimeCreated, " + 23. "WfEvents.Name AS EventName, " + 24. "WfEvents.State, " + 25. "WfEvents.ActivityName, " + 26. "WfEvents.Exception, " + 27. "WfEventProperties.Name AS TrackedVariableName, " + 28. "WfEventProperties.Value AS TrackedVariableValue " + 29. 30. "FROM EventSources INNER JOIN " + 31. "WfEvents ON EventSource s.Id = WfEvents.EventSourceId INNER JOIN " + 32. "WfEventProperties ON WfEvents.Id = WfEventProperties.EventId " + 33. "WHERE EventSources.Name = `'$FullWorkflowName`' AND WfEventProperties.Name = `'$trackedVariable`'" 34. 35.

36. Invoke-Sqlcmd -Query $SQL -Database $database 37. } Essa nova funo GetTrackedWFVariableEvents apenas uma pequena modificao feita na funo GetWFEvents. Ela acrescenta um INNER JOIN adicional com a exibio WfEventProperties para relatar os nomes das variveis rastreadas e seus valores. Ela tambm filtra a consulta SQL pelo nome de fluxo de trabalho e nome de varivel rastreada, no pelo InstanceId. Isso permite identificar a instncia de Fluxo de Trabalho pelo valor de Quantidade que voc definiu quando fez uma soli citao. De modo prtico, a ID de uma solicitao deve ficar exposta para rastreamento.

38. Feche o Bloco de Notas e clique em Salvar para salvar as alteraes feitas em Utility.ps1. 39. Insira o seguinte comando no Windows PowerShell para importar as novas alteraes feitas em Utility.ps1 para a sesso atual do Windows PowerShell. 40. Import-Module .\Utility.ps1 Gerando e relatando os novos dados de rastreamento 1. Execute OrderClient.exe. Esse arquivo deve ter sido implantado no diretrio C:\DublinTutorial\OrderClient, conforme documentado na Lio 1: introduo do Tutorial usando a interface do Windows Server AppFabric. 2. Insira 88 para o valor de Quantidade. 3. Clique em Submit (Enviar) no Order Form (Formulrio de Pedido) do Contoso.com. Antes de continuar, verifique se a seo de status na parte inferior do formulrio mostra Your order has been received (Seu pedido foi recebido). Depois que isso for exibido no formulrio, uma nova instncia de Fluxo de Trabalho do pedido ser executada, simulando o processamento de um pedido. 4. Aguarde cerca de 30 segundos para a gravao das informaes de rastreamento. 5. Na janela do Windows PowerShell, insira o seguinte comando para relatar os eventos de rastreamento. 6. GetTrackedWFVariableEvents "Microsoft.Samples.Dublin.Tutorials.OrderService.Order WorkflowService.OrderWorkflow" quantity OrderService_PS

Os resultados devem ser similares ao relatrio a seguir. Observe o TrackedVariableName e o TrackedVariableValue que foram rastreados para a instncia de fluxo de trabalho. WorkflowName : Microsoft.Samples.Dublin.Tutorials.OrderService.OrderW orkflowService.OrderWorkflow Computer : server1 Site : OrderService_PS VirtualPath : /OrderWorkflowService/OrderWorkflow.xamlx EventID : 1439 WorkflowInstanceId : ac0fd7fb -d463-4683-9c7580d90a8b75ed TimeCreated : 2009 -11-02 10:09:21.3108822 EventName : Wait for order State : Closed ActivityName : Exception : TrackedVariableName : quantity TrackedVariableValue : 88

O que terminei de fazer? Nesta lio, voc criou um novo perfil de rastreamento e usou os cmdlets do AppFabric para Windows PowerShell a fim de configurar o OrderWorkflowService para usar o novo perfil. Em seguida, voc gerou as informaes de rastreamento criando uma nova instncia de Fluxo de Trabalho e relatou os dados de rastreamento usando uma funo de script do Windows PowerShell personalizada.

S-ar putea să vă placă și