Service web WCF ne retourne pas WSDL

À l'aide de wsdl.exe /l:CS /serverInterface, j'ai généré un C# interface à partir d'un document WSDL. J'ai mis en place cette interface sur un WCF classe. Le service qui en résultent s'exécute localement:

http://localhost:51454/TapasSim.svc

Cela montre que le site par défaut. Le problème apparaît lorsque je les ajoute ?wsdl à l'URL:

http://localhost:51454/TapasSim.svc?wsdl

Service web WCF ne retourne pas WSDL

Contrairement à ce que j'attendais, ce lien n'est pas le retour d'un document WSDL! Au lieu de cela, il nous ramène à l'exacte de la page web que vous obtenez sans le ?wsdl. En conséquence, je ne peut pas référencer le service web. Si je lance svcutil.exe il donne cette erreur:

Si vous essayez de générer un client, ce pourrait être parce que le
les métadonnées des documents ne contiennent pas de contrats ou de services ou
parce que tous les contrats/services ont été découverts à exister dans /référence
assemblées. Vérifiez que vous avez passé tous les documents de métadonnées à l'
outil de.

Mais je m'attends à ce que l'erreur d'avoir la même cause que l'absence de réponse à ?wsdl.

Ce qui pourrait causer un WCF .svc service de ne pas générer le WSDL?

  • Avez-vous d'activer les "métadonnées HTTP Get" paramètre dans le fichier de configuration de service?
  • Oui, <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>. Si vous désactiver cette fonction, le site n'affiche pas de lien pour le WSDL.
  • Avez-vous mis en place le mex point de terminaison?
  • Aucun MEX point est configuré (comment pourrais-je aller sur le faire?) L'généré de l'assistant de service WCF ne comprend pas un MEX point de terminaison, mais encore, elle génère un fichier WSDL.
  • Pouvez-vous s'il vous plaît poster votre fichier de configuration du service (app.config ou web.config)?
  • Posté sur pastebin
  • Jetez un oeil à ce pour un exemple de la façon d'ajouter le point de terminaison: msdn.microsoft.com/en-us/library/ms734786.aspx
  • Le MEX point de terminaison semble en option, l'assistant généré webservice fonctionne très bien sans elle.
  • Si cela fonctionne très bien sans elle, pourquoi êtes-vous de poster ici? Je dirais qu'il ne fonctionne pas bien parce qu'il ne fait pas ce que vous voulez, ce qui est précisément ce que le mex point de terminaison est pour, mex être un acronyme pour l'échange de métadonnées et de tous.
  • La valeur par défaut File -> New Project -> WCF Website génère WSDL sans MEX point de terminaison. Le lien de Kwai commentaire dit littéralement This section is optional with the default configuration introduced in .NET Framework 4.. En fait, j'ai ajouté MEX et il n'a pas aidé.

InformationsquelleAutor Andomar | 2013-01-29