Recentemente, criei um serviço WCF (dll) e um host de serviço (exe). Sei que meu serviço WCF está funcionando corretamente, pois consigo adicionar o serviço ao WcfTestClient com êxito.
No entanto, pareço estar tendo um problema ao usar meu WCF de um host de serviço (exe). Posso adicionar uma referência ao WCF (dll) ao meu host de serviço (exe) e criar os componentes necessários para o exe; como o instalador do serviço, o host do serviço e o app.config, compile e, por fim, instale o exe usando o InstallUtil. Mas, quando tentei iniciar o serviço no Console de Gerenciamento Microsoft, o serviço parou imediatamente após ser iniciado.
Então, comecei a investigar o que exatamente poderia estar causando esse problema e encontrei esse erro no Log do aplicativo no Visualizador de eventos.
Descrição:
O serviço não pode ser iniciado. System.InvalidOperationException: Service 'Service' tem nenhum ponto de extremidade de aplicativo (não infra-estrutura). Isso pode ser porque nenhum arquivo de configuração foi localizado para seu aplicativo, ou porque nenhum elemento de serviço correspondente ao nome do serviço pôde ser localizado no arquivo de configuração, ou porque nenhum terminal foi definido no elemento de serviço.
Na verdade, esse erro é gerado no OnStart
; do meu exe, quando faço esta chamada ServiceHost.Open()
. Já vi várias postagens em que outras pessoas se depararam com esse problema, porém a maioria, senão todos, afirmam que o nome do serviço ou contrato; namespace e nome de classe, não estão sendo especificados. Eu verifiquei essas duas entradas em meu arquivo de configuração; tanto no exe quanto no dll, e eles combinam PERFEITAMENTE. Pedi a outras pessoas no escritório que verificassem atrás de mim para ter certeza de que eu não estava ficando cego em algum momento, mas é claro que eles chegaram à mesma conclusão que eu de que tudo parecia estar especificado corretamente. Estou realmente perdido quanto ao que está acontecendo neste ponto. Alguém poderia me ajudar com esse problema?
Outra coisa que surgiu como uma possível razão para isso estar acontecendo é que o app.config nunca está sendo lido; pelo menos não aquele que eu acho que deveria ser lido. Seria este o problema? Em caso afirmativo, como posso resolver esse problema. Novamente, qualquer ajuda seria apreciada.