2010-01-21 20 views
1

我想使用Silverlight應用程序和asp.net mvc應用程序來使用WCF服務,並且我很難配置該服務以支持這兩個請求。有關如何創建WCF silverlight 3端點的問題

這些是我的WCF配置文件的端點。

<service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService"> 
    <endpoint binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"> 
     <identity> 
     <dns value="localhost"/> 
     </identity> 
    </endpoint> 
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/> 

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 

,我發現了以下錯誤: 綁定實例已經關聯到聽URI '的net.tcp://本地主機:10377/ProdutoService'。如果兩個端點想要共享相同的ListenUri,則它們也必須共享相同的綁定對象實例。兩個衝突的端點是在AddServiceEndpoint()調用,配置文件或AddServiceEndpoint()和config的組合中指定的。

回答

0

問題是試圖使用兩個端點與兩個綁定 ...您可以在這裏使用同一服務上的多個端點,但他們需要使用相同的綁定。

而且由於Silverlight 只支持basicHttpBinding的你是那種用它卡住了。

<service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService"> 
    <endpoint binding="**basic**HttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/> 
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/> 
</service> 
+0

只需注意,除了BasicHttpBinding之外,Silverlight 3還支持二進制綁定。實際上,當您創建一個啓用Silverlight的新WCF服務時,它將成爲新的默認值。 – 2010-01-21 16:47:59

+0

我只需要使用兩個端點?或者我應該使用二進制綁定嗎? – 2010-01-21 17:06:03

+0

我只爲basichttpbinding做了一個endpoit現在我得到這個錯誤: 合同需要Session,但Binding'BasicHttpBinding'不支持它或者配置不正確以支持它。 – 2010-01-21 17:13:15

0

在您的配置中,兩個端點的地址是相同的。通過HTTP綁定,您可以擁有多個服務端點,但您需要爲它們指定不同的地址。更改basicHttpBinding端點的地址以解決此問題。