Compartilhar via


Recuperando variáveis rastreadas do Repositório de Monitoramento do Windows Server AppFabric

Este exemplo mostra como usar o Entity Framework para recuperar e desserializar variáveis de fluxo de trabalho rastreadas do banco de dados de monitoramento do AppFabric. Você vai aprender sobre alguns dos modos de exibição públicos expostos do banco de dados de monitoramento que tornam isso possível. Esse exemplo funcionará com qualquer aplicativo. É recomendável o Aplicativo comum de exemplo do Windows Server AppFabric, que foi criado para ser usado com exemplos do AppFabric. Para encontrar esse aplicativo, navegue até a pasta <exemplos>\SampleApplication\OrderApplication, onde <exemplos> é o caminho no qual você instalou os exemplos do AppFabric.

Dica

Os exemplos são fornecidos apenas para fins educacionais. Eles não devem ser usados em um ambiente de produção e não foram testados em um ambiente de produção. A Microsoft não oferece suporte técnico para esses exemplos.

Pré-requisitos

  • Uma instalação do Windows Server AppFabric com monitoramento configurado.

  • Pelo menos um serviço WCF ou WF hospedado no AppFabric.

Dica

Esse exemplo ilustrará melhor os recursos de monitoramento se o serviço for configurado para rastrear uma variável de um tipo complexo.

Se você estiver desserializando variáveis rastreadas de um conjunto personalizado, certifique-se de adicionar o conjunto (por exemplo, o Exemplo de Aplicativo do AppFabric) como referência para este projeto de modo que ele possa desserializar adequadamente esses objetos.

Arquivos de exemplo

Esse exemplo vem com os seguintes arquivos:

  • Estrutura da solução e arquivos de código de apoio do Visual Studio 2010

  • TrackedWFVariable.cs

  • Program.cs

Configurando e executando esse exemplo

  1. Verifique se as variáveis foram rastreadas e armazenadas no banco de dados de monitoramento. Você pode fazer isso inspecionando o modo de exibição WFEventProperties e verificando se há linhas presentes.

  2. Abra a solução Visual Studio que acompanha esse exemplo.

    Importante

    Verifique se você está trabalhando com uma conta que tenha acesso de leitura ao banco de dados de monitoramento do AppFabric.

  3. Edite o valor Banco de Dados em Program.cs para que ele aponte para o seu banco de dados desejado.

  4. Edite o valor que é passado para o construtor AppFabricMonitoringEntities em Program.cs. Por padrão, ele aponta para uma instância do SQL Express. Um nome da instância SQL padrão foi incluído na parte superior do arquivo para simplificar.

  5. Crie e execute o exemplo, pressionando F5.

Noções básicas sobre esse exemplo

O Program.cs usa o Entity Framework para consultar no banco de dados os eventos de fluxo de trabalho mais recentes. A classe TrackedWFVariable usa o contexto de dados do Entity Framework para conectar-se e acessar qualquer linha WFEventProperty que esteja relacionada aos eventos recentes. As propriedades são então desserializadas em seus tipos originais do .NET. Esse processo varia de acordo com o tipo de objeto a ser desserializado.

Os seguintes tipos são armazenados como representação simples de cadeia de caracteres na coluna Valor do modo de exibição WFEventProperties:

  • System.String

  • System.Char

  • System.Boolean

  • System.Int32

  • System.Int16

  • System.Int64

  • System.UInt32

  • System.UInt16

  • System.UInt64

  • System.Single

  • System.Double

  • System.Guid

  • System.DateTimeOffset

  • System.DateTime

Esses tipos podem ser desserializados, chamando os métodos estáticos Análise que esses tipos definem, transmitindo os valores de cadeia de caracteres como um parâmetro. Todos os outros tipos têm seu valor armazenado na coluna ValueBlob do modo de exibição WFEventProperties e devem ser desserializados usando o System.Runtime.Serialization.NetDataContractSerializer. Isso requer que o assembly, que declara o tipo a ser desserializado, seja carregado. Os objetos são armazenados dessa forma no banco de dados para que os tipos mais simples listados acima possam ser facilmente consultados pelos clientes SQL.

Removendo esse exemplo

Esse exemplo não deixa nenhum artefato para trás. Você poderá excluir os arquivos de exemplo se quiser.

  2011-12-05