Desenvolvimento - WCF/WPF

Utilizando WCF-Provided Host

Este artigo ilustra o uso do utilitário WcfSvcHost para publicar um servço WCF.

por Anderson Melo



O Visual Studio 2008 fornece uma nova funcionalidade muito útil para auxiliar no desenvolvimento de serviços WCF, ou até mesmo para implantar um serviço WCF mais simples em um ambiente menos crítico.

 

Chamada de WCF-Provided Host, trata-se de uma linha de comando do executável WcfSvcHost que permite disponibilizar um serviço WCF, evitando dessa forma que o desenvolvedor tenha o trabalho que criar um programa do tipo ConsoleApplication ou WindowsService, ou ainda ter que disponibilizá-lo no IIS ou no WAS, para testar ou implantar um serviço mais simples.

Para utilizar esta ferramenta, após criar o serviço, e configurá-lo devidamente através do app.config, conforme o exemplo.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

namespace Training.Service

{

    [ServiceContract(Name="CustomerService",

        Namespace="http://training/article/wcf-providedhost")]

    public interface ICustomerService

    {

        [OperationContract(IsOneWay=false)]

        string Initialize();

    }

}

Listagem de Código 1: Definição do contrato.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

namespace Training.Service

{

    public class CustomerService:ICustomerService

    {

        public string Initialize()

        {

            return "Initializing...";

        }

    }

}

Listagem de código 2: Implementação do contrato.

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <system.serviceModel>

    <services>     

      <service name="Training.Service.CustomerService"

               behaviorConfiguration="CustomerServiceBehavior">

        <host>

          <baseAddresses>

            <add baseAddress="http://localhost:8081/CustomerService"/>

          </baseAddresses>

        </host>

        <endpoint address=""

                  binding="basicHttpBinding"

                  contract="Training.Service.ICustomerService"/>

      </service>

    </services>

    <behaviors>

      <serviceBehaviors>

        <behavior name="CustomerServiceBehavior">

          <serviceMetadata httpGetEnabled="true"/>

        </behavior>

      </serviceBehaviors>

    </behaviors>

  </system.serviceModel>

</configuration>

Listagem de código 3: Configuração do serviço.


deve-se abrir o command prompt e entrar com a seguinte linha de comando:

WcfSvcHost.exe /service:Training.Service.dll /config:Training.Service.dll.config

O comando é bem simples, deve-se informar o caminho do assembly em “service" e o caminho do arquivo de configuração em “config”.

Após a execução desta linha, uma janela será aberta informando que o serviço foi iniciado.

Figura 1: Janela com as informações do serviço.

Contudo, pela facilidade de se implantar um serviço, este utilitário é muito útil para testes em tempo de desenvolvimento ou para disponibilizar um serviço simples rapidamente.

Anderson Melo

Anderson Melo - Formado em Sistemas de Informação pelo Mackenzie, trabalha com a Plataforma .NET desde meados de 2003. Atualmente atua como desenvolvedor na General Electric.