2011-06-21 7 views
0

J'ai un service WCF:service WCF multiples configuration point final

https://myservice/service.svc 
https://myservice/service.svc?wsdl 

Ci-dessous sont la section correspondante de mon web.config de WCF Application (laissez-moi savoir si vous avez besoin de plus):

<bindings> 
<basicHttpBinding> 
    <binding name="basicHttp"> 
    <security mode="TransportWithMessageCredential"> 
    <message clientCredentialType="UserName"/> 
    </security> 
    </binding> 
</basicHttpBinding> 
</bindings> 

<behaviors> 
<serviceBehaviors> 
    <behavior name="MyService.ServiceBehavior"> 
    <serviceMetadata httpsGetEnabled="true"/> 
    <serviceDebug includeExceptionDetailInFaults="true"/> 
    <serviceCredentials> 
    <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="SqlMembershipProvider"/> 
    </serviceCredentials> 
    <serviceThrottling maxConcurrentCalls="100" maxConcurrentInstances="100" maxConcurrentSessions="100"></serviceThrottling> 
    </behavior> 
</serviceBehaviors> 
</behaviors> 

<services> 
<service behaviorConfiguration="MyService.ServiceBehavior" name="MyService.Service"> 
    <endpoint address="/ClientA" binding="basicHttpBinding" bindingConfiguration="basicHttp" name="basicHttpEndpoint" contract="MyService.IService"></endpoint> 
    <endpoint address="/ClientB" binding="basicHttpBinding" bindingConfiguration="basicHttp" name="basicHttpEndpoint" contract="MyService.IService"></endpoint> 
    <endpoint address="/ClientC" binding="basicHttpBinding" bindingConfiguration="basicHttp" name="basicHttpEndpoint" contract="MyService.IService"></endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
</service> 
</services> 

Je veux que mes clients soient en mesure d'accéder au service à travers les liens suivants, mais les liens ne fonctionnent pas: (ou peut-être ma syntaxe est mauvaise pour les liens ci-dessous, laissez-moi savoir si tel est le cas)

https://myservice/service.svc/ClientA 
https://myservice/service.svc/ClientB 
https://myservice/service.svc/ClientC 

liens suivants fonctionnent, mais je ne pense pas que cela est dû à ma configuration, comme si j'écris quoi que ce soit après la dernière barre oblique il fonctionne encore ....

https://myservice/service.svc?wsdl/ClientA 
https://myservice/service.svc?wsdl/ClientB 
https://myservice/service.svc?wsdl/ClientC 

https://myservice/service.svc?wsdl/asfgvafgfgf ... (this works too !!!) 

S'il vous plaît laissez-moi savoir comment atteindre cet. Je ne veux pas créer de service distinct pour tous les clients. Si cela fonctionne, je veux utiliser un autre contrat = "MyService.IService" dans la définition du point de terminaison pour tous les clients, car les méthodes pour chaque client exposé dans le service seraient différentes.

Je voudrais également demander, serais-je en mesure de spécifier quelle chaîne de connexion utiliser, en fonction de quel terminal client accède au service?

Et enfin: Je ne veux pas que:

https://myservice/service.svc 
https://myservice/service.svc?wsdl 

liens soient accessibles, je veux que les clients d'utiliser uniquement leurs liens spécifiés ...

est que possible, ou devrais-je créer des services distincts pour chaque client ...?

Merci.

+1

avez-vous essayé sans le "/" au début? –

+0

yeh vient d'essayer, ne fonctionne pas, l'explorateur dit que la page ne peut pas trouver (même que les dernières tentatives) j'ai essayé d'y accéder via: https: //myservice/service.svc/ClientA ... (je fais quelque chose de mal en accédant ça, je veux dire, est-ce qu'il y a quelque chose qui ne va pas avec mon lien ...) – user402186

Répondre

Questions connexes