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.
avez-vous essayé sans le "/" au début? –
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