Vikram
Vikram

Reputation: 495

Contract requires Session, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it

When i'm using SessionMode = SessionMode.Required in servicecontract then i get this error

Contract requires Session, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.

anyone tell me a solution?

Upvotes: 17

Views: 31591

Answers (2)

Jeya Prakash A
Jeya Prakash A

Reputation: 129

This error message is seldom clear. Here the answer goes like this, basichttpbinding doesn't support session. So you have to use the below property if you want to use it. [ServiceContract(SessionMode = SessionMode.Allowed)]

This means, If you are trying to configure multiple bindings like basichttp, wshttp, net.tcp, WCF will automatically enable session for other than basichttp binding. so if you put SessionMode.Required instead of Allowed, then you are forced not to use basichttpbinding.

That said, solving this issue usually would require something like this:

<system.serviceModel>
    <protocolMapping>
      <add scheme="http" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfiguration" />
    </protocolMapping>
    <bindings>
      <wsHttpBinding>
        <binding name="wsHttpBindingConfiguration" transactionFlow="true" />
      </wsHttpBinding>
      .......

Upvotes: 12

Ben
Ben

Reputation: 1043

As it's listed here, choose wsHttpBinding or NetTcpBinding.WSHttpBinding binding.

Upvotes: 10

Related Questions