Alguém conhece um bom exemplo de como expor um serviço WCF programaticamente sem o uso de um arquivo de configuração? Sei que o modelo de objeto de serviço é muito mais rico agora com o WCF, então sei que é possível. Eu simplesmente não vi um exemplo de como fazer isso. Por outro lado, gostaria de ver como é feito o consumo sem um arquivo de configuração também.
Antes que alguém pergunte, tenho uma necessidade muito específica de fazer isso sem arquivos de configuração. Normalmente não recomendaria tal prática, mas, como disse, há uma necessidade muito específica neste caso.
wcf
configuration
configuration-files
Kilhoffer
fonte
fonte
Respostas:
Consumir um serviço da web sem um arquivo de configuração é muito simples, como descobri. Você simplesmente precisa criar um objeto de ligação e um objeto de endereço e passá-los para o construtor do proxy do cliente ou para uma instância ChannelFactory genérica. Você pode consultar o app.config padrão para ver quais configurações usar e, em seguida, criar um método auxiliar estático em algum lugar que instancia seu proxy:
fonte
Security.Mode
padrão éNone
.)Se você estiver interessado em eliminar o uso da seção System.ServiceModel no web.config para hospedagem IIS, postei um exemplo de como fazer isso aqui ( http://bejabbers2.blogspot.com/2010/02/wcf -zero-config-in-net-35-part-ii.html ). Mostro como personalizar um ServiceHost para criar metadados e pontos de extremidade wshttpbinding. Eu faço isso de maneira geral, que não requer codificação adicional. Para aqueles que não estão atualizando imediatamente para o .NET 4.0, isso pode ser muito conveniente.
fonte
Aqui, este é um código completo e funcional. Acho que vai te ajudar muito. Eu estava pesquisando e nunca encontrei um código completo, por isso tentei colocar o código completo e funcionando. Boa sorte.
fonte
Não é fácil do lado do servidor .
Para o lado do cliente, você pode usar ChannelFactory
fonte
Todas as configurações do WCF podem ser feitas de maneira programática. Portanto, é possível criar servidores e clientes sem um arquivo de configuração.
Eu recomendo o livro "Programming WCF Services" de Juval Lowy, que contém muitos exemplos de configuração programática.
fonte
É muito fácil de fazer no lado do cliente e do servidor. O livro de Juval Lowy tem excelentes exemplos.
Quanto ao seu comentário sobre os arquivos de configuração, eu diria que os arquivos de configuração são o segundo homem pobre em fazer isso em código. Os arquivos de configuração são ótimos quando você controla cada cliente que se conectará ao seu servidor e garante que eles estejam atualizados e que os usuários não possam encontrá-los e alterar nada. Acho que o modelo de arquivo de configuração do WCF é limitante, ligeiramente difícil de projetar e um pesadelo de manutenção. Em suma, acho que foi uma decisão muito ruim da MS tornar os arquivos de configuração a maneira padrão de fazer as coisas.
EDIT: Uma das coisas que você não pode fazer com o arquivo de configuração é criar serviços com construtores não padrão. Isso leva a variáveis estáticas / globais e singletons e outros tipos de não-sentido no WCF.
fonte
Achei a postagem do blog no link abaixo sobre esse tópico muito interessante.
Uma ideia de que gosto é ser capaz de simplesmente passar uma ligação ou comportamento ou seção XML de endereço da configuração para o objeto WCF apropriado e deixá-lo lidar com a atribuição das propriedades - atualmente, você não pode fazer isso.
Como outras pessoas na web, estou tendo problemas em relação à necessidade de minha implementação do WCF usar um arquivo de configuração diferente daquele do meu aplicativo de hospedagem (que é um serviço do Windows .NET 2.0).
http://salvoz.com/blog/2007/12/09/programmatically-setting-wcf-configuration/
fonte