如何配置Silverlight应用和双工WFC服务以使用HTTPS?目前,如果使用HTTP,evrything可以工作,但是一旦客户端使用HTTPS访问站点,服务中的回调创建就会失败。我相信我需要修改我的配置文件,但我无法弄清楚它应该设置为什么。
这是我当前的配置:
<system.serviceModel>
<extensions>
<bindingExtensions>
<add name="pollingDuplex" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,
System.ServiceModel.PollingDuplex,
Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentSessions="2147483647" maxConcurrentInstances="2147483647" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<pollingDuplex>
<binding name="myPollingDuplex" duplexMode="SingleMessagePerPoll" />
</pollingDuplex>
</bindings>
<services>
<service name="UnityEca.Web.Services.SearchPollingService">
<endpoint address="" binding="pollingDuplex" bindingConfiguration="myPollingDuplex" contract="UnityEca.Web.Services.SearchPollingService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
从我的Silverlight应用程序中,我像这样创建客户端代理:
SearchPollingServiceClient client = new SearchPollingProxy.SearchPollingServiceClient(
new PollingDuplexHttpBinding { DuplexMode = PollingDuplexMode.SingleMessagePerPoll },
new EndpointAddress("../Services/SearchPollingService.svc"));
...谢谢
答案 0 :(得分:0)
您是否为SSL实施了clientaccesspolicy文件?见这里:http://timheuer.com/blog/archive/2008/10/14/calling-secure-services-with-silverlight-2-ssl-https.aspx
您可能还需要在ServicesReferences.clientconfig文件中添加安全元素:
<bindings>
<pollingDuplex>
<binding name="myPollingDuplex" duplexMode="SingleMessagePerPoll">
<security mode="Transport" />
</binding>
</pollingDuplex>
</bindings>
有关详细信息,请参阅this question。