Ответ 1
Как он перечисляет здесь, выберите wsHttpBinding
или NetTcpBinding.WSHttpBinding
привязку.
Когда я использую SessionMode = SessionMode.Required
в servicecontract, я получаю эту ошибку
Контракт требует сеанса, но привязка "BasicHttpBinding" не поддерживайте его или неправильно настроили для его поддержки.
Кто-нибудь скажет мне решение?
Как он перечисляет здесь, выберите wsHttpBinding
или NetTcpBinding.WSHttpBinding
привязку.
Это сообщение об ошибке редко отображается. Здесь ответ идет так: 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>
.......