2011-03-17 62 views
0

我有一個silverlight客戶端,目前與WCF服務不安全地通信。如何使WCF服務https啓用並在Silverlight中使用它?

1>我想讓WCF服務受到保護。(https啓用) 2>我想在silverlight客戶端中引用安全的wcf服務。

任何人都可以幫忙配置服務?

Web.config文件:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment> 

<bindings> 
    <basicHttpBinding> 
    <binding name="MyBasicHttpBinding" >   
     <security mode="Transport" > 
     <transport clientCredentialType="None"/> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

<services> 
    <service behaviorConfiguration="DataService.Service1Behavior" 
    name="DataService.Service1"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding" 
     contract="DataService.IService1">   
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service>  
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="DataService.Service1Behavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" httpsHelpPageEnabled="true" /> 
    </behavior>  
    </serviceBehaviors> 
</behaviors> 

我收到以下錯誤信息:

找不到與結合basicHttpBinding的匹配方案HTTPS端點的基址。註冊的基地址方案是[http]。

回答

-2

嘗試添加baseAddresses部分到服務元素:

<services>   
    <service behaviorConfiguration="DataService.Service1Behavior" 
    name="DataService.Service1"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="https://[your url]"/> 
     <add baseAddress="http://[your url]"/> 
     </baseAddresses> 
    </host> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding" 
     contract="DataService.IService1">   
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service>  
</services> 
+0

錯誤仍然存​​在配置WCF。 – RockWorld 2011-03-17 08:01:15

1

你需要正確的綁定和服務的行爲,如下面的配置

1)在結合地方givn主要部分= 「basicHttpBinding的」 使用綁定= 「的wsHttpBinding 」 2)在結合=「 mexHttpBinding」 的地方使用綁定= 「mexHttpsBinding」 3)在服務行爲serviceMetadata httpsGetEnabled =「真」

你可以找到非常簡單的步驟加入,即使主機基址,HTTPS後HTTPS here

+0

Silverlight是否支持wsHttpBinding? – RockWorld 2011-03-17 08:37:05

+0

你是對的我錯過了你的問題silverlight部分,你可以嘗試替代解決方案1)http://www.dotnetcurry.com/ShowArticle.aspx?ID=590或2)http://www.dotnetcurry.com/ ShowArticle.aspx?ID = 589 – 2011-03-17 10:17:10