2010-11-24 3 views
0

J'utilise la liaison .NET 4.0, WCF et wshttp pour créer des méthodes ws. La raison de l'utilisation de la liaison wsHttp est que j'ai besoin de support pour l'authentification, le cryptage et la signature.WCF, wsHttpBinding et wsp: policy

Lorsque je crée un tel service et que je me penche sur wsdl, je vois qu'il y a une balise wsp: policy. Existe-t-il un moyen d'influencer la configuration de WCF et de supprimer cette balise?

Si je comprends bien, il est possible d'avoir un cryptage et une signature sans cette balise.

Répondre

2

Vous pouvez remplacer le fichier WSDL généré par votre propre fichier WSDL (serviceMetadata - externalMetadataLocation). C'est la seule façon dont je suis sûr que vous pouvez réaliser ce que vous voulez parce que vous allez écrire WSDL à partir de zéro. Il existe des points d'extensibilité pour la modification des WSDL et politiques générés - IWsdlExportExtension et IPolicyExportExtension mais je pense que vous ne pourrez ajouter de nouveaux éléments au WSDL que si vous supprimez des éléments ajoutés par des fonctionnalités de l'API (sécurité intégrée, etc.).

Btw. À mon humble avis, il est très mauvaise idée de supprimer les politiques parce que WSDL devrait décrire le service et il devrait être la seule description que le développeur doit avoir pour créer une application cliente. Si vous supprimez des stratégies, votre WSDL ne couvrira que des informations partielles sur votre service et deviendra inutile. Certainement, vous allez freiner la compatibilité avec les outils de génération de proxy. J'avais lié question sur ce sujet.

+0

Hey Ladislav, 10x pour la réponse. La seule raison à cela est que mon WS sera utilisé par certains systèmes Java qui peuvent avoir des problèmes à cause de cette balise. Je garderai votre remarque à l'esprit et je garderai cette balise dans ma définition de wsdl. Une question connexe, puis-je utiliser l'attribut externalMetadataLocation pour définir le chemin d'accès aux définitions XSD, ou est-ce uniquement pour wsdl? – buhtla

+0

Les XSD sont référencés à partir de WSDL, vous n'avez donc pas besoin de spécifier leur chemin dans la configuration. Vous le spécifier dans WSDL. –

+0

intéressant (concernant) que c'est maintenant 2015 et j'ai encore des consommateurs Java avec des problèmes à cause de cette balise. Si cela n'est pas utilisable par un si grand nombre de clients, je souhaite que MS fournisse un moyen de le supprimer. – hal9000

Questions connexes