我们在SSL上使用pollingDuplexHttpBinding,安全模式为 TransportWithMessageCredential 。 服务从客户端接收消息,但客户端没有得到响应。
如果我们将安全模式从 TransportWithMessageCredential 更改为传输,则一切正常。
工作配置
要显示的评论不起作用。
服务配置
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<!--
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="myType" />
</serviceCredentials>
-->
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<pollingDuplexHttpBinding>
<binding name="multipleMessagesPerPollPollingDuplexHttpBinding"
duplexMode="SingleMessagePerPoll">
<!--
<security mode="TransportWithMessageCredential" />
-->
<security mode="Transport" />
</binding>
</pollingDuplexHttpBinding>
</bindings>
<services>
<service name="Gam.Service.GamSrv">
<endpoint
address=""
binding="pollingDuplexHttpBinding"
bindingConfiguration="multipleMessagesPerPollPollingDuplexHttpBinding"
contract="Gam.Service.Abstract.IUserSrv" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
SilverLight 4客户端配置
<bindings>
<customBinding>
<binding name="pd">
<!--
<security authenticationMode="UserNameOverTransport" />
-->
<pollingDuplex duplexMode="SingleMessagePerPoll" />
<binaryMessageEncoding />
<httpsTransport transferMode="Buffered" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="/GamSrv.svc"
binding="customBinding"
bindingConfiguration="pd"
contract="GamSrvReference.IUserSrv"
name="MyDuplexContract" />
</client>
答案 0 :(得分:0)
解决方案 - 在客户端安全配置中添加includeTimestamp =“false”
<security authenticationMode="UserNameOverTransport" includeTimestamp="false" />