2010-10-14 45 views

回答

3

试试这个....

<services>  
    <service name="Service"> 
    <endpoint address="http://localhost:8080/Service/S1" 
       binding="basicHttpBinding" 
       contract="IService1" 

    /> 

    <endpoint address="http://localhost:8080/Service/S2" 
       binding="basicHttpBinding" 
       contract="IService2 " 

    /> 
    </service> 
</services> 
+0

不是成为我正在寻找的东西。 MyService类是一个实现两个接口的类:IService1和IService2。根据http://msdn.microsoft.com/en-us/library/ms731303.aspx service.name属性必须映射到一个类型名称。如果MyService是实施合同的唯一类型,则不能在配置中使用两次。 – 2010-10-14 18:30:51

+0

@Marcin Seredynski:你是对的 - 服务**类**不能在配置中使用两次 - 只有一个可能。 **但是:**您仍然可以在两个单独的地址上定义**两个单独的端点**,服务类实现的每个** CONTRACTS **都是一个 - 这就是您要查找的内容,不是? – 2010-10-14 20:28:20

1

您可以只使用一个服务有两个端点,这样 :

<services>  
    <service name="MyNamespace.MyService"> 
    <endpoint address="/Service/S1" 
       binding="basicHttpBinding" 
       contract="IService1" /> 
    <endpoint address="/Service/S2" 
       binding="basicHttpBinding" 
       contract="IService2 " /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8080/"/> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 

编辑:添加基址,似乎

+0

由于某种原因,此方法不想工作:服务无法启动。 System.InvalidOperationException:无法找到与绑定BasicHttpBinding的端点匹配方案http的基地址。注册的基地址方案是[]。 – 2010-10-14 18:32:37

+0

请注意,我通过传递服务实例和端点Uri来实例化ServiceHost。 – 2010-10-14 18:33:38

+0

的确,我已经相应地更新了我的答案。 – 2010-10-14 18:51:32

相关问题