2010-04-16 10 views
6

Ich habe einen WCF-Dienst derzeit bereitgestellt mit BasicHttpBindings und SSL aktiviert. Aber jetzt brauche ich wcf Sitzungen aktivieren (nicht asp Sitzungen) so bewegt i-Dienst zu wsHttpBidnings aber Sitzungen werden nichtSo aktivieren Sie WCF-Sitzung mit wsHttpBidning mit nur Transport Sicherheit

aktiviert ich gesetzt haben

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 

Aber wenn ich gesetzt

SessionMode=SessionMode.Required 

auf Servicevertrag es sagt

Vertrag erfordert Session, aber Bindung 'WSHttpBindin g 'unterstützt es nicht oder ist nicht richtig konfiguriert, um es zu unterstützen.

Folgenden ist die Definition von WSHttpBinding

<wsHttpBinding> 
    <binding name="wsHttpBinding"> 
     <readerQuotas maxStringContentLength="10240" /> 
     <reliableSession enabled="false" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </wsHttpBinding> 

mir bitte helfen mit diesem

Antwort

7

Wenn Sie „Sitzungen“ mit wsHttpBinding wollen, müssen Sie entweder zuverlässige Messaging oder die Sicherheits Sitzungen verwenden.

Um Sitzungen auf wsHttpBinding zu aktivieren, benötigen Sie eine zuverlässige Nachrichtenübertragung. Dazu müssen Sie die Einstellung für eine zuverlässige Sitzung (das entsprechende Tag <reliableSession/>) aktivieren. Ihre neue Konfiguration würde also so aussehen:

<wsHttpBinding> 
    <binding name="wsHttpBinding"> 
     <readerQuotas maxStringContentLength="10240" /> 
     <reliableSession enabled="true" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </wsHttpBinding> 
+0

Ich habe versucht, dies vor, aber es wirft Ausnahme, die sagt: "Keine Basisadresse gefunden mit http Schema bla bla und reliableSessions sind keine Unterstützung mit https Schema bla bla" –

+0

Ich lasse Sie nach einem anderen Mal versuchen. Danke –

+0

Was kann ich tun, wenn ich Sitzungen verwenden möchte, aber ich kann nicht tun, wie Sie vorgeschlagen haben, da mein Kunde AJAX ist? da AJAX den Sicherheitskontext nicht unterstützt. –

-1

gut <security mode="None"> dann das machen „Https erwartet statt HTTP-Fehler wird behoben.

-1

zu Ihrem IIS Host gehen und Rechtsklick auf Ihre Anwendung und wählen MangeApplication und Erweiterte Einstellungen und in Aktivierte Protokolle hinzufügen“ wsHttpBinding ".

Verwandte Themen