2011-02-08 11 views
6

ho configurato un servizio WCF con wsHttpBinding ma anche allora ottengo l'erroreHTTP di base vincolante non è configurato correttamente

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

Ecco la definizione contratto di servizio

<ServiceContract(SessionMode:=SessionMode.Required)> 
Public Interface IPrivateService 

Ecco la definizione di implementazione del servizio

<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession)> 
Public Class PrivateService 
    Implements IPrivateService 

Ecco le impostazioni di configurazione

<services> 
    <service behaviorConfiguration="behaviorAction" name="Viking.Service.PrivateService"> 
      <endpoint address="RequiredService" binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Viking.Service.IPrivateService"> 
       <identity> 
       <dns value="localhost"/> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
      </service> 
</services> 
<bindings> 
      <wsHttpBinding> 
      <binding name="bindingAction" transactionFlow="false" sendTimeout="00:30:00" receiveTimeout="00:30:00"> 
       <reliableSession enabled="true"/> 
      </binding> 
      </wsHttpBinding> 
</bindings> 

veramente apprezzare qualche consiglio sulla questione.

risposta

24

Se si utilizza wcf 4.0, quindi aprire web.config/app.config e aggiungere il seguente tag all'interno del tag <system.serviceModel>.

<protocolMapping> 
    <add scheme="http" binding="wsHttpBinding"/> 
</protocolMapping> 
+0

che funziona. Grazie mille! – Vikram

+0

come dichiarare protocolMapping dal codice? – Butsaty

Problemi correlati