当我在servicecontract中使用SessionMode = SessionMode.Required
时,我收到此错误
有人告诉我一个解决方案吗?合同需要Session,但Binding'BasicHttpBinding'不需要 支持它或未正确配置以支持它。
答案 0 :(得分:10)
如列出here,请选择wsHttpBinding
或NetTcpBinding.WSHttpBinding
绑定。
答案 1 :(得分:10)
此错误消息很少清除。答案是这样的,basichttpbinding不支持会话。因此,如果要使用它,则必须使用以下属性。 [ServiceContract(SessionMode = SessionMode.Allowed)]
这意味着,如果您尝试配置多个绑定,如basichttp,wshttp,net.tcp,WCF将自动启用除basichttp绑定之外的会话。所以如果你把SessionMode.Required而不是Allowed,那么你就不会使用basichttpbinding。
那就是说,解决这个问题通常需要这样的事情:
<system.serviceModel>
<protocolMapping>
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfiguration" />
</protocolMapping>
<bindings>
<wsHttpBinding>
<binding name="wsHttpBindingConfiguration" transactionFlow="true" />
</wsHttpBinding>
.......