2011-06-21 235 views
0

我有一个WCF服务:WCF服务的多个端点配置

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

下面给出的是我的WCF应用程序的Web.config的相关部分(让我知道如果你需要更多):

<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?wsdl/ClientA 
https://myservice/service.svc?wsdl/ClientB 
https://myservice/service.svc?wsdl/ClientC 

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

请让我知道如何做到这一点。我不想为所有客户创建单独的服务。

如果这样做,我想在所有客户端的端点定义中使用不同的contract =“MyService.IService”,因为每个在服务中暴露的客户端的方法都会有所不同。

我也想问一下,我能够指定使用哪个连接字符串,具体取决于客户端通过哪个端点访问服务?

最后一点:我不想:

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

链接进行访问,我希望客户机只使用其指定的链接...

是,在所有可能的,或者我应该创建为每个客户单独提供服务......?

谢谢。

+1

你开始时没有“/”开头吗? –

+0

你刚刚试过,不工作,资源管理器说,页面找不到(与最后一次尝试相同)我试图通过访问它:https://myservice/service.svc/ClientA ...(我在访问时做错了什么它,我的意思是有一些东西与我的链接错误...) – user402186

回答