2010-05-25 6 views
0

est-il possible d'appeler une opération de service à un point d'extrémité wcf avec un service auto-hébergé?Comment appeler une opération de service sur un point de terminaison WCF de style REST?

Je souhaite appeler une opération de service par défaut lorsque le client entre l'URI de point de terminaison du service.

Dans l'exemple suivant ces URIs appellent correctement les opérations déclarées (sayHello, SayHi):

- http://localhost:4711/clerk/hello 
- http://localhost:4711/clerk/hi 

Mais la uri

- http://localhost:4711/clerk 

ne remet pas l'opération SayWelcome déclarée. Au lieu de cela, il mène à la page «Publication de métadonnées désactivée» bien connue. Activer mex n'aide pas, dans ce cas la page mex est affichée au point final uri. Y at-il un moyen de désactiver la gestion de mex et d'activer une opération déclarée à la place?

Merci d'avance, Dieter

Répondre

1

Avez-vous essayé?

[OperationContract, WebGet(UriTemplate = "/")] 
Stream SayWelcome(); 

MISE À JOUR:

Je ne sais pas pourquoi il ne fonctionne pas pour vous, j'ai un service WCF'autonome avec le contrat de service suivant:

[ServiceContract] 
public interface IDiscoveryService { 

    [OperationContract] 
    [WebGet(BodyStyle=WebMessageBodyStyle.Bare, UriTemplate="")] 
    Stream GetDatasets(); 

La seule différence que je peux voir est que j'utilise WebServiceHost au lieu de ServiceHost.

+0

Oui, je l'ai essayé. Même résultat Ceci est cohérent avec la documentation de MS, qui indique que les barres obliques au début et à la fin de la chaîne de template uri sont ignorées. Malheureusement, cela n'aide pas. Merci pour cette suggestion, Darrel. –

+0

Darrel, merci beaucoup. Le WebServiceHost fait la différence. Quand j'utilise WebServiceHost au lieu de ServiceHost tout fonctionne bien! Cordialement, Dieter –

Questions connexes