Pergunta

Como atualmente estou aprendendo a usar serviços WCF, estou constantemente encontrando tutoriais na internet que mencionam usando um ServiceHost Ao usar um serviço WCF.

O que exatamente é isso ServiceHost ?


No meu projeto atual, estou usando um serviço WCF e tendo uma referência a ele do meu aplicativo e sempre que quiser consumi -lo no meu aplicativo, apenas instancie seu ServiceClient assim:

new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);

E depois acesse meus métodos da web (OperationContracts) A partir dessa instância (obviamente abrindo -o antes de consumir o método e fechá -lo depois com Open e Close)

Meu serviço WCF é host no meu IIS e eu apenas acesse o .svc Do meu aplicativo para instanciar o ServiceClient.

Então, por que e onde está ServiceHost usado?

Foi útil?

Solução

Um serviço de serviço basicamente fornece tudo o que você precisa para hospedar um serviço WCF em um não-IIS ou estava definindo. Um local comum para um serviço de serviço estaria em um aplicativo de console ou serviço do Windows. Veja o código de exemplo do MSDN para Como configurar um serviço de serviço em um aplicativo de console.

Outras dicas

Sua implementação de serviço é apenas uma classe .NET - você precisa ter um ambiente de tempo de execução para ela, para que possa ser executado de alguma forma. É para isso que serve o serviço - ele carregará sua classe de serviço, configurará os pontos de extremidade e os ouvintes de canal e todas essas coisas e, assim, dará à sua classe de serviço um "ecossistema" para viver e operar.

Você pode instanciar uma classe de serviço de serviço em um aplicativo de console, um serviço do Windows ou até mesmo um aplicativo WinForms e, assim, disponibilizar sua classe de serviço WCF para o mundo exterior - ou pode delegar esse trabalho ao IIS ou foi. Até o IIS ou o Was With usará um serviço para hospedar seu serviço WCF - eles apenas o fazem automaticamente nos bastidores e "sob demanda" - sempre que uma solicitação para o seu serviço WCF chegar.

Marc

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top