2010-10-14 44 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

相關問題