La WCF: relativeAddress,baseAddress et de liaison
Je suis nouveau dans WCF et de commencer mon expérience avec un simple fichier-moins partie d'une application (web.la configuration) vous pouvez voir ci-dessous:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add
factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="./RelativeAddress.svc"
service="WCF_Transactions.MyService1"/>
</serviceActivations>
</serviceHostingEnvironment>
Maintenant, je peux le service d'accès à
http://localhost:18148/RelativeAddress.svc
Puis j'ai ajouter les lignes suivantes:
<services>
<service name="WCF_Transactions.MyService1" behaviorConfiguration="MyBehavior1">
<host>
<baseAddresses>
<add baseAddress="http://localhost:18148/" />
</baseAddresses>
</host>
<endpoint address="/RelativeAddressX.svc" binding="basicHttpBinding" contract="WCF_Transactions.IService1"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior1">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
Donc j'attends que mon service soit accessible à travers l'adresse suivante:
http://localhost:18148/RelativeAddressX.svc
mais je ne peux pas faire cela. Qu'ai-je mal compris?
Quel est le type d'hébergement, vous utilisez? Est-ce IIS ou de l'auto-hébergement?
J'utilise visual studio serveur de développement
J'utilise visual studio serveur de développement
OriginalL'auteur NET | 2013-02-13
Vous devez vous connecter pour publier un commentaire.
MSDN http://msdn.microsoft.com/en-us/library/ms733749.aspx:
*
*
Ainsi, selon votre exemple, vous avez de la base adresse
et il sera combiné avec RelativeAddress.svc, comme le nom de votre fichier svc. Et puis il va essayer de combiner cette chaîne avec /RelativeAddressX.svc comme une partie de l'adresse de point de terminaison. De sorte que vous aurez quelque chose comme
Votre point de terminaison ne doit pas spécifier le chemin d'accès à svc dans IIS. Il devrait contenant uniquement une adresse logique, assosiated avec ce point.
Donc, essayez de changer votre point de terminaison à la suivante:
Et il doit être accessible par le chemin
OriginalL'auteur Alex
Vous n'avez pas besoin de spécifier dans le fichier de configuration lors de l'hébergement dans IIS ou Cassini - l'URL de base est fourni par le serveur web. L'élément est utilisé lors de l'auto-hébergement. Cassini (VS construire dans le web-serveur) va l'ignorer.
Ici est une bonne page sur WCF adressage:
http://msdn.microsoft.com/en-us/magazine/cc163412.aspx
Voici quelques related posts:
WCF points de terminaison du Service contre l'Hôte d'une adresse de Base
WCF, la modification de la baseAdress d'un point de terminaison
OriginalL'auteur Jocke