Quelqu'un connaît-il un bon exemple de la façon d'exposer un service WCF par programme sans utiliser de fichier de configuration? Je sais que le modèle d'objet de service est beaucoup plus riche maintenant avec WCF, donc je sais que c'est possible. Je n'ai tout simplement pas vu d'exemple sur la façon de procéder. À l'inverse, j'aimerais voir comment la consommation sans fichier de configuration se fait également.
Avant que quiconque ne le demande, j'ai un besoin très spécifique de le faire sans fichiers de configuration. Je ne recommanderais normalement pas une telle pratique, mais comme je l'ai dit, il y a un besoin très spécifique dans ce cas.
wcf
configuration
configuration-files
Kilhoffer
la source
la source
Réponses:
Consommer un service Web sans fichier de configuration est très simple, comme je l'ai découvert. Il vous suffit de créer un objet de liaison et un objet d'adresse et de les transmettre au constructeur du proxy client ou à une instance générique de ChannelFactory. Vous pouvez consulter le fichier app.config par défaut pour voir les paramètres à utiliser, puis créer une méthode d'assistance statique quelque part qui instancie votre proxy:
la source
Security.Mode
défaut estNone
.)Si vous souhaitez éliminer l'utilisation de la section System.ServiceModel dans le web.config pour l'hébergement IIS, j'ai publié un exemple de la façon de le faire ici ( http://bejabbers2.blogspot.com/2010/02/wcf -zero-config-in-net-35-part-ii.html ). Je montre comment personnaliser un ServiceHost pour créer à la fois des métadonnées et des points de terminaison wshttpbinding. Je le fais d'une manière générale qui ne nécessite pas de codage supplémentaire. Pour ceux qui ne passent pas immédiatement à .NET 4.0, cela peut être très pratique.
la source
Ici, c'est un code complet et fonctionnel. Je pense que cela vous aidera beaucoup. Je cherchais et je ne trouve jamais de code complet, c'est pourquoi j'ai essayé de mettre du code complet et fonctionnel. Bonne chance.
la source
Ce n'est pas facile côté serveur .
Pour le côté client, vous pouvez utiliser ChannelFactory
la source
Toute configuration WCF peut être effectuée par programme. Il est donc possible de créer à la fois des serveurs et des clients sans fichier de configuration.
Je recommande le livre "Programming WCF Services" de Juval Lowy, qui contient de nombreux exemples de configuration programmatique.
la source
C'est très facile à faire à la fois du côté client et du côté serveur. Le livre de Juval Lowy a d'excellents exemples.
Quant à votre commentaire sur les fichiers de configuration, je dirais que les fichiers de configuration sont une seconde pour les pauvres pour le faire dans le code. Les fichiers de configuration sont parfaits lorsque vous contrôlez chaque client qui se connectera à votre serveur et que vous vous assurez qu'ils sont mis à jour et que les utilisateurs ne peuvent pas les trouver et modifier quoi que ce soit. Je trouve que le modèle de fichier de configuration WCF est limitatif, légèrement difficile à concevoir et un cauchemar de maintenance. Dans l'ensemble, je pense que c'était une très mauvaise décision de la part de MS de faire des fichiers de configuration la manière par défaut de faire les choses.
EDIT: Une des choses que vous ne pouvez pas faire avec le fichier de configuration est de créer des services avec des constructeurs non par défaut. Cela conduit à des variables statiques / globales et des singletons et à d'autres types de non-sens dans WCF.
la source
J'ai trouvé le billet de blog sur le lien ci-dessous autour de ce sujet très intéressant.
Une idée que j'aime est de pouvoir simplement passer une section XML de liaison ou de comportement ou d'adresse de la configuration à l'objet WCF approprié et de le laisser gérer l'attribution des propriétés - actuellement, vous ne pouvez pas le faire.
Comme d'autres sur le Web, je rencontre des problèmes pour avoir besoin de mon implémentation WCF pour utiliser un fichier de configuration différent de celui de mon application d'hébergement (qui est un service Windows .NET 2.0).
http://salvoz.com/blog/2007/12/09/programmatically-setting-wcf-configuration/
la source