我想同时使用Sessions和SSL,所以我设置了所有证书,并确保在WCF服务上正确设置了所有内容。我已经尝试了所有的方法,但我似乎不能让它工作。它抛给我一个InvalidoperationException,告诉我WsHttpBinding不能创建安全会话,我应该使用MessageSecurity而不是TransportSecurity.But,我想使用Https而不是Http,所以我想使用TransportSecurity。谁能帮帮我。提前谢谢。
用于WsHttpBinding的App.config:
<wsHttpBinding>
<binding name="WSHttpBinding">
<reliableSession enabled="True" />
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>编辑:我忘了提到,当我试图调用ServiceHost.Open()时,会出现InvalidOperationException,所以日志记录不会有多大作用,但谢谢您提到它。
发布于 2011-08-12 04:30:30
我没有试过,但是MSDN says:
若要通过HTTPS使用可靠会话,必须创建使用可靠会话和HTTPS传输的自定义绑定。
尝试本文中描述的自定义绑定。
编辑:
我检查了Reflector为什么它不能与WsHttpBinding一起工作。初始化安全性时,WsHttpBinding包含以下代码:
if (isReliableSession && !this.IsSecureConversationEnabled())
{
throw ...
}这可能意味着WsHttpBinding允许在不安全的通道上或通过消息安全和安全对话保护的通道上使用可靠会话。
发布于 2011-08-12 04:11:41
我建议您启用WCF logging,并使用SvcTraceViewer查看生成的日志文件。这应该会为你提供更多关于正在发生的事情的细节,并通常有助于我追踪更困难的WCF问题。
https://stackoverflow.com/questions/7032062
复制相似问题