У меня есть сервис WCF:
https://myservice/service.svc
https://myservice/service.svc?wsdl
Ниже приведен соответствующий раздел web.config моего приложения WCF (дайте мне знать, если вам нужно больше):
<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>
Я хочу, чтобы мои клиенты могли получить доступ к службе по следующим ссылкам, но ссылки не работают: (или, возможно, мой синтаксис неверен для ссылок ниже, дайте мне знать, если это так)
https://myservice/service.svc/ClientA
https://myservice/service.svc/ClientB
https://myservice/service.svc/ClientC
следующие ссылки работают, но я не думаю, что это связано с моей конфигурацией, как будто я пишу что-нибудь после последней косой черты, это все еще работает ....
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 !!!)
Пожалуйста, дайте мне знать, как этого добиться. Я не хочу создавать отдельный сервис для всех клиентов.
если это работает, я хочу использовать другой контракт = "MyService.IService" в определении конечной точки для всех клиентов, поскольку методы для каждого клиента, представленного в службе, будут отличаться.
Я также хочу спросить, смогу ли я указать, какую строку подключения использовать, в зависимости от того, через какой клиент конечной точки обращается к службе?
И, наконец, я не хочу:
https://myservice/service.svc
https://myservice/service.svc?wsdl
ссылки должны быть доступны, я хочу, чтобы клиенты использовали только свои указанные ссылки ...
это вообще возможно, или я должен создать отдельные службы для каждого клиента ...?
Спасибо.