我目前使用basicHttpBindings和SSL启用了WCF服务。但是现在我需要启用wcf会话(而不是asp会话),所以我将服务转移到了wsHttpBidnings但是没有启用会话
我已经设置了
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
但是当我设置
SessionMode=SessionMode.Required
关于服务合同
合同需要Session,但是Binding 'WSHttpBinding'不支持它或 未正确配置以支持 它
以下是WSHttpBinding的定义
<wsHttpBinding>
<binding name="wsHttpBinding">
<readerQuotas maxStringContentLength="10240" />
<reliableSession enabled="false" />
<security mode="Transport">
<transport clientCredentialType="None">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
</security>
</binding>
</wsHttpBinding>
请帮我解决这个问题
答案 0 :(得分:7)
如果你想要与wsHttpBinding“会话”,你必须使用可靠的消息传递或安全会话。
要在wsHttpBinding上启用会话,您需要可靠的消息传递,为此,您需要更改可靠会话的设置(看起来像此<reliableSession/>
的标记) - 这样您的新配置就会显示像这样:
<wsHttpBinding>
<binding name="wsHttpBinding">
<readerQuotas maxStringContentLength="10240" />
<reliableSession enabled="true" />
<security mode="Transport">
<transport clientCredentialType="None">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
</security>
</binding>
</wsHttpBinding>
答案 1 :(得分:-1)
好了<security mode="None">
然后“Https预期而不是HTTP错误将被修复。
答案 2 :(得分:-1)
转到您的IIS主机并右键单击您的应用程序并选择MangeApplication和Advanced Settings,然后在Enabled Protocols中添加“wsHttpBinding”。