как включить сессию WCF с wsHttpBidning с безопасностью только транспорта - PullRequest
6 голосов
/ 16 апреля 2010

У меня есть служба WCF, развернутая в настоящее время с включенными basicHttpBindings и SSL.Но теперь мне нужно включить сеансы wcf (не сессии asp), поэтому я переместил службу в wsHttpBidnings, но сеансы не включены

Я установил

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

Но когда я установил

SessionMode=SessionMode.Required

в контракте на обслуживание указано

В контракте требуется сеанс, но привязка 'WSHttpBinding' не поддерживает его или не настроена для его поддержки.

ниже приводится определение WSHttpBinding

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

, пожалуйста, помогите мне с этим

Ответы [ 3 ]

7 голосов
/ 16 апреля 2010

Если вы хотите «сеансы» с wsHttpBinding, вы должны использовать либо надежный обмен сообщениями, либо сеансы безопасности.

Чтобы включить сеансы в wsHttpBinding, вам нужен надежный обмен сообщениями, и для этого вам нужно изменить настройку для надежного сеанса (тег, который выглядит так <reliableSession/>), чтобы ваша новая конфигурация выглядела так :

<wsHttpBinding>
    <binding name="wsHttpBinding">
      <readerQuotas maxStringContentLength="10240" />
      <reliableSession enabled="true" />
      <security mode="Transport">
        <transport clientCredentialType="None">
          <extendedProtectionPolicy policyEnforcement="Never" />
        </transport>
      </security>
    </binding>
  </wsHttpBinding>
0 голосов
/ 24 апреля 2013

Перейдите на хост IIS и щелкните правой кнопкой мыши на приложении и выберите MangeApplication и Advanced Settings, а во включенных протоколах добавьте «wsHttpBinding».

0 голосов
/ 19 июня 2012

хорошо, сделайте <security mode="None">, тогда вместо ожидаемой ошибки HTTP будет исправлено "Https.

...