6

現在、basicHttpBindings と SSL を有効にしてデプロイされている WCF サービスがあります。しかし、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>

これで私を助けてください

4

3 に答える 3

8

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>
于 2010-04-16T05:55:24.787 に答える
-1

IIS ホストに移動し、アプリケーションを右クリックして [MangeApplication] と [Advanced Settings] を選択し、[Enabled Protocols] に「wsHttpBinding」を追加します。

于 2013-04-24T06:10:15.887 に答える
-1

うまくいけば<security mode="None">、「HTTP エラーの代わりに Https が必要です。修正されます。

于 2012-06-19T08:28:50.583 に答える