2009-06-08 8 views
1

Lorsque vous spécifiez une adresse dans le cadre d'un point de terminaison, le format est:Quelle est exactement la dernière partie de l'adresse dans WCF?

http://localhost:8080/MyWCFService ou net.tcp: // localhost: 8080/MyWCFService

Les directives (dans les livres, MSDN, etc.) indique le «/MyWCFService 'est un' chemin 'vers le service.

Qu'est-ce que cela signifie exactement?

Est-ce le type de l'implémentation du service (par opposition à dire un chemin de répertoire physique, un chemin racine virtuel, un espace de noms, etc.)? Quoi qu'il en soit, comment la bibliothèque CLR/WCF utilise-t-elle ces données pour effectuer son travail, par ex. si c'est un type, je peux voir que le servicehost (serviceHost.Open();) serait capable d'éradiquer l'objet pertinent et d'invoquer la méthode demandée.

Répondre

1

/MyWCFService est le répertoire virtuel dans ASP.NET. Vous avez probablement quelque chose comme /MyWCFService/SomeService.svc dans votre solution ou votre projet.

1

Dans votre exemple, MyWCFService n'est pas une adresse physique, elle correspond au point de terminaison configuré pour une liaison particulière.

Un ServiceHost peut héberger plusieurs services et chacun a plusieurs points d'extrémité.

Si votre service est hébergé par IIS, l'adresse de base est un chemin virtuel vers le fichier .svc.

1

L'adresse vous indique où se trouve votre service. Il fournit l'emplacement du service ainsi que le protocole de transport pour la communication avec le service.

La partie localhost est destinée à la machine cible alors que la partie '/ MyWCFService' est un chemin spécifique optionnel.

1

L'adresse est juste une chaîne décrivant un "emplacement" où un service expose ses services, ou un client se connecte à. Par défaut, il n'a aucune connexion directe avec quoi que ce soit de "physique", par ex. il ne se réfère pas à un fichier ou quoi que ce soit.

En cas d'hébergement de votre service dans IIS, la première partie de votre adresse immédiatement après l'ordinateur et le port est en fait le nom du répertoire virtuel IIS où se trouve votre fichier * .svc.

Dans le cas de MSMQ, votre adresse de service doit correspondre au nom de la file d'attente MSMQ (ou vice versa).

Autre que les cas - l'adresse est vraiment juste un moyen de décrire où trouver un service particulier. La première partie http: //, https: //, net.tcp: // et ainsi de suite est généralement appelée "schéma" et se réfère vaguement au protocole de transport utilisé pour connecter votre client au service.

La deuxième partie est généralement un nom de machine, éventuellement avec numéro de port. Cette partie est connectée à une entité physique, bien sûr - votre machine doit exister, le numéro de port doit être disponible et utilisable. Mais la troisième partie, ce que vous appelez le "chemin" du service, peut vraiment être ce que vous voulez, si vous hébergez votre service vous-même (par exemple dans une application console ou un service Windows NT) .Si vous vous auto-hébergez, le chemin n'a absolument aucun rapport avec un chemin physique sur disque, répertoire virtuel ou autre. L'hôte de service - le morceau de code qui hébergera et exécutera votre classe de service, qui est juste une classe .NET régulière - exposera/publiera n'importe quel nombre de points de terminaison avec l'adresse, la liaison et le contrat. L'hôte de service définit donc les URI valides pour ses services. Le ou les clients doivent ensuite se connecter à l'un de ces points de terminaison publiés en spécifiant la même adresse - schéma (http: // https: //, net.tcp: //), le nom de la machine et éventuellement le port, et le chemin du service.

Marc

Questions connexes