. Antes da introdução do WCF, serviços web desenvolvidos na Net teve que ser hospedado no Internet Information Server ( IIS). Em . Net 3.0, as opções de hospedagem para serviços web . Líquidas aumentaram substancialmente . WCF inclui uma classe chamada ServiceHost que permite que os serviços sejam hospedados em um aplicativo facilmente. ServiceHost abstrai muitos a complexidade tecnológica longe para que os desenvolvedores possam se concentrar na lógica em vez de o encanamento envolvidos em serviços de hospedagem de serviços. Hospedar um serviço fora do IIS requer o tempo de execução do WCF e um NET aplicativo gerenciado . Agir como o anfitrião . É responsabilidade do desenvolvedor para escrever o código que inicia e pára o host. Instruções
1
Selecione "New " e depois " Project" no menu Arquivo. A caixa de diálogo New Project é exibida.
2
Selecione Visual C # , em seguida, o Windows a partir da lista de modelos de projeto na caixa de diálogo New Project .
3
Selecionar Aplicativo Console a partir da lista de tipos de projeto do Windows. Especifique um nome para o projeto na caixa Nome . O nome do projeto deve ser algo relacionado ao auto de hospedagem de um serviço web , se possível.
4
Digite um local na caixa de localização na caixa de diálogo New Project . Como alternativa , clique em " Browse" para navegar até o local onde o projeto será armazenado. Clique em " OK". Visual Studio irá criar um novo aplicativo de console.
5
botão direito do mouse SelfHost no Solution Explorer. Em seguida, selecione Add Reference. Localize System.ServiceModel na NET . E clique em " OK". Isto irá adicionar uma referência ao assembly System.ServiceModel que é necessário para desenvolver ou serviços WCF host.
6
Clique duas vezes no arquivo de classe que foi adicionado quando o projeto foi criado. Na maioria dos casos, será nomeado Program . O código para a classe será exibida.
7
clique com o botão direito do mouse sobre o nome do projeto e selecione "Add New Class ". Nomeie a classe " HelloWorld " e insira o seguinte código:
usando System.ServiceModel ;
usando System.ServiceModel.Description ;
[ ServiceContract ]
interface pública IHelloWorld
{
[ OperationContract ]
corda SayHello (string name );
}
public class HelloWorld : IHelloWorld
{
cadeia pública SayHello (string name ) {
retornar string.Format ("Olá , {0}" , nome );
} }
Este código é a implementação de uma amostra " HelloWorld " serviço web que tem uma operação, " SayHello ".
8
clique duas vezes sobre a classe que foi adicionado automaticamente quando o projeto foi criado. Na maioria dos casos , a classe será nomeado Program
9
Digite o seguinte código na parte superior da classe :
usando System.ServiceModel ;
usando System.ServiceModel.Description ;
10 Digite o seguinte código no método Main da classe :
//define o endereço base para o serviço na máquina local
Uri baseAddress = new Uri ( " http://localhost:8080/hello ");
//Cria o Service Host
usando ( ServiceHost host = new ServiceHost . ( typeof ( HelloWorld ) , baseAddress ) ) {
//Ativar a publicação de metadados
ServiceMetadataBehavior smb = new ServiceMetadataBehavior (); .
smb . HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15 ;
host.Description.Behaviors.Add ( smb );
//Abrir o ServiceHost para começar escuta de mensagens
host.Open (); .
Console.WriteLine (" O serviço está sendo executado e pode receber pedido {0}" , baseAddress );
Console . WriteLine ( "Press Enter para parar o serviço . ");
Console.ReadLine (); .
//Fechar o ServiceHost
host.Close (); }
Este código inicia o serviço de acolhimento e cria uma instância do serviço. O serviço pode ser chamado de um cliente até que o aplicativo de console é fechado.